一、镜像相关指令
1、查看本地镜像仓库的镜像
docker images
2、下载镜像
docker pull 镜像名称 //最新版本
docker pull 镜像名称:版本标签
实操:
docker pull tomcat:8.5.57-jdk8-openjdk-slim
3、搜索镜像仓库
docker search 搜索关键字
4、删除镜像
docker rmi 镜像名称:版本标签 //如果是最新版镜像,版本标签可以忽略
要删除的镜像必须未创建容器
docker rmi tomcat:8.5.57-jdk8-openjdk-slim
5、把镜像转存为文件
docker save -o /root/tomcat.tar tomcat:8.5.57-jdk8-openjdk-slim
6、把镜像备份文件还原为镜像
docker load -i /root/tomcat.tar
二、容器相关指令
1、创建容器指令
docker run
(1)、创建一个java容器,执行一句话,打印一个 hello world!
docker run java:8 /bin/echo ‘Hello World!’
(2)、创建一个容器,进入到容器交互模式
-i 运行容器
-t 和容器交互
–name 给容器取名
docker run -it --name=c1 centos:centos7 /bin/bash
(3)、创建一个可以长期运行容器
-d 守护容器,可以长期运行
docker run -di --name=c2 centos:centos7
2、查看容器
docker ps //查看正在运行中容器
docker ps -a //查看全部容器
3、退出容器
exit
4、进入到正在运行中容器
docker exec -it c2 /bin/bash
5、停止容器
docker stop 容器名称 或者是容器编号
6、启动容器
docker start 容器名称 或者是容器编号
7、重启容器
docker restart 容器名称 或者是容器编号
8、强制停止容器
docker kill 容器名称 或者是容器编号
9、拷贝宿主机文件到容器
docker cp /root/new.txt c1:/root/qq.txt
10、把容器文件拷贝回宿主机
docker cp c1:/root/rongqi.txt /root/rongqi.txt
11、把宿主机目录,挂载到容器
docker run -di --name=c3 -v /root/www:/qqq centos:centos7 --privileged
// -v 挂载宿主机目录到容器目录
// --privileged 解决权限问题
12、删除容器
docker rm 容器名称 -f 删除正在运行容器
13、查看容器ip地址
docker inspect 容器名称
docker inspect --format=‘{{.NetworkSettings.IPAddress}}’
14、容器运行日志
docker logs 容器名称
docker logs --tail=10 容器名称 //查看最后行数内容
三、创建java常用容器
1、创建有一个jdk环境容器
(1)、拉取jdk镜像
docker pull jdk:1.8
(2)、创建一个jdk容器
docker run -di --name=j1 java:8
2、创建一个redis容器
(1)、拉取redis镜像
docker pull redis:4.0.8
(2)、创建redis容器
docker run -di --name=redi1 -p 8888:6379 redis
// -p 端口转发指令 宿主机端口:容器端口
3、mysql容器创建
(1)、拉取mysql镜像
docker pull mysql:5.7
(2)、创建mysql容器
docker run -di --name=mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=java111 mysql:5.7
-e MYSQL_ROOT_PASSWORD 设置root账号密码
-e MYSQL_DATABASE 创建容器的时候同时创建指定数据库
(3)、解决mysql容器中文乱码问题
(1.1)、准备一个mysql配置文件
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
#By default we only accept connections from localhost
#bind-address = 127.0.0.1
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
(1.2)创建容器
docker run -di --name=mysql1 -p 3306:3306 -v /root/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=java111 mysql:5.7
(1.3)、创建容器、自动初始化建表、导入数据
docker run -di --name=mysql1 -p 3306:3306 -v /root/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /root/db.sql:/docker-entrypoint-initdb.d/db.sql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=java111 mysql:5.7
在容器:/docker-entrypoint-initdb.d 目录下sql会自动执行
4、创建一个tomcat的容器
docker run -di --name=tom1 -p 8080:8080 tomcat:8.5.57-jdk8-openjdk-slim