Docker服务管理
yum -y install docker-ce
下载最新版的dockersystemctl status docker
查看docker运行状态systemctl start docker
启动dockersystemctl stop docker
停止dockersystemctl restart docker
重启dockerservice docker stop
停止dockerservice docker restart
重启docker
Docker软件环境
docker version
查看docker版本号docker info
查看docker信息docker --help
查询所有命令docker [command] --help
查看某个命令的帮助文档
容器管理
docker run -it --name centos6.10 -p 7000:6379 dockerhub/centos:6
以交互模式创建容器,这样才能启动之后不退出(注意i和t最好一同使用,否则的话虽然能进入控制台,但是没有控制台的前缀,像是阻塞了,感觉怪怪的)docker run -d --name mysql-1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
启动mysql可以直接用参数d,否则会卡在里面出不来,而且要记得输入root用户的密码docker ps -a
列出所有容器信息docker ps --no-trunc -a
不加截取的显示所有信息docker start redis7000
启动容器(可追加多个)docker stop redis7000
停止容器(可追加多个)docker restart redis7000
重启容器(可追加多个)docker stats -a
查看各个容器占用CPU和内存的情况docker exec -it redis7000 bash
进入到容器控制台中docker exec -it redis7000 [linux command]
可以直接在容器中执行命令docker rm a5184a35532
根据容器id删除容器docker rm redis7000
根据容器名称删除容器docker cp ROOT.war easyMall-tomcat:/usr/local/tomcat/webapps/
将文件拷贝到容器中
网络管理
-
docker network create --subnet=172.18.0.0/24 slgdockernet
创建网络 -
docker network ls
列出当前网络 -
docker network inspect slgdockernet
查看某个网络中的节点情况 -
docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
显示所有容器的IP地址 -
docker inspect 容器ID | grep IPAddress
查看某个容器的IP地址 -
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
查看某个容器的IP地址by名称或ID -
重建docker网络方法:
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
service docker restart
镜像管理
docker search keywords
从Docker Hub查找有哪些公共可用的镜像docker pull centos:6
从镜像仓库中下载,前面是软件后面是版本号docker images
查看当前拥有的镜像docker load -i redis-3.2.8.tar
装载redis镜像docker save a2a69ca5184a > jt-centOS6.tar
根据镜像id导出镜像docker save -o redis-3.2.8.tar redis:3.2.8
根据镜像名称导出镜像docker rmi a2a69ca5184a
根据id删除镜像文件docker rmi mysql:5.7
根据repository:tag删除镜像docker tag 44a8e1a5c0b2 docker.io/mysql:5.7
标记本地镜像(设置名字)docker build --rm -t dockerhub/centos6.10:0.0.1 .
(创建镜像,其中–rm表示删除中间环节产生的容器。注意最后那个“点”必须加!代表当前目录!并且Dockerfile必须也在当前目录)docker commit 991660e8a4d2 slgdocker/redis2
将某个容器创建为一个新镜像,注意是容器ID而非镜像IDdocker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=f7b62139738e)
查看依赖某个镜像的其它镜像,since后面即为镜像ID
基础镜像做法
- 进入https://hub.docker.com/_/centos/,找到下方的CentOS image documentation,根据自己的需求选择合适的命令
- 在linux控制台敲入
docker pull centos:6
(该大版本的最近小版本),如果需要选择精确版本,那么需要将tag也键入,例如docker pull centos:6.10
- 此时最基础的系统镜像就创建好了,之后可以按照网站后面的提示将该镜像中的/etc/yum.conf重新配置下,并且将必须的软件安装一下
- 再根据当前容器commit创建一个新的镜像即可
Docker文件路径
- 本地镜像默认保存在Docker宿主机的/var/lib/docker目录下
- 容器默认保存在Docker宿主机的/var/lib/docker/containers目录下,下面每一个文件夹的名称即为containerID