系统centos7.4
安装
yum安装默认最新版本:
#yum -y install yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce -y
启动及加入开机自启
# systemctl start docker
# systemctl enable docker
查看docker版本:
# docker info #包含很多信息
查看docker日志:
# journalctl -u docker.service
按历史版本安装:
# yum -y install yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看历史版本信息
# yum list docker-ce --showduplicates|grep "^doc"|sort -r
docker-ce.x86_64 3:18.09.3-3.el7 @docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
.........
# yum -y install docker-ce-18.09.3
官网连接
Redirecting…https://docs.docker.com/install/linux/docker-ce/centos/
更改docker存储目录
centos7下
修改docker.service文件,使用-g参数指定存储位置
# vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /new-path/docker
// reload配置文件
systemctl daemon-reload
// 重启docker
systemctl restart docker.service
如果docker是1.12或以上的版本,可以修改(或新建)daemon.json文件。修改后会立即生效,不需重启docker服务。
vim /etc/docker/daemon.json
{"registry-mirrors": ["http://7e61f7f9.m.daocloud.io"],"graph": "/new-path/docker"}
docker使用(未分类,按日常操作顺序编写):
下载镜像:
# docker pull 镜像名称:版本号
搜索镜像:
# docker search mysql
查看镜像:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aaa-1.0.14 latest 933aba596758 9 days ago 1.37GB
aaa-1.0.13 latest 0162e0234d44 3 weeks ago 1.37GB
创建并启动容器:
模拟aaa-1.0.14镜像中是一个java程序,程序启动生成端口8081,程序日志存放在容器中的/tmp/logs下,需要把端口和日志放到宿主机上。
# docker run \
-p 8081:8081 \ #端口映射 宿主机端口/容器内端口
-m 4g \ #允许最大使用内存4G,如果不配置swap限制,默认1024M
--name abc \ #启动后的容器名称
-d \ #后台运行
--restart=on-failure:10 \ #容器意外停止后自动尝试重启十次
--restart=always #容器开机自启
-v /tmp/logs/abc-log/:/tmp/logs/ \ #挂载目录 本地目录:容器目录(挂载后同步目录内容到本地)
abc-1.0.14 #镜像名称
查看容器:
# docker ps #查看运行中的容器
# docker ps -a #查看所有容器,包括未运行的
# docker logs abc #查看容器名为abc的容器日志docker logs -f abc跟踪查看
# docker inspect abc #查看容器信息
进入容器:
# docker exec -it abc bash
上传文件到容器:
# docker cp filename.tar.gz abc:/tmp #将filename.tar.gz文件上传到容器abc的tmp目录下
保存更改后的容器:
如果容器内发生变化,重启容器会自动消失,所以有时候在镜像内容无法满足我们需要做一些变更后保存下来,就需要以下操作
# docker commit -m "自定义内容" -a "作者信息" aaa bbb:1.1.1 将容器aaa制作成镜像bbb:1.1.1 ,通过docker images可以看到
停止容器:
# docker stop abc
启动容器:
# docker start abc
重启容器:
# docker restart abc
删除容器:
# docker rm abc ###需容器停止后才能删除容器
删除镜像:
# docker rmi aaa-1.0.14
存出镜像:
将镜像打包成压缩文件方便移动
# docker save -o 压缩包名称 镜像名称
载入镜像
# docker load --input 压缩包名称
或者
# docker load < 压缩包名称
导出容器:
无论容器是否处于正在运行均可以导出
# docker export -o 压缩包名称 容器名称
导入容器:
# docker import 压缩包名称 导入后的容器名称
下载自己想要的镜像
登录 :docker login 后面无需跟地址
登录到下面的地址进行注册,然后使用用户名和密码登录 docker login ,注意不能使用email登录。
Docker Hub