6.1 安装
- 安装
$ yum -y install docker
6.2 启动
- 启动
$ systemctl start docker
- 状态
$ systemctl status docker # 状态
$ docker version # 版本
$ docker info # 详细信息
- 关闭
$ systemctl stop docker
6.3 基本操作
- 增
$ docker pull centos # 从docker仓库下载一个镜像
$ docker pull centos:7.9.2009 # 指定版本
- 删
$ docker rmi bf7 # 删除镜像:docker rmi 镜像id前3位,必须先删除有相关依赖的容器进程记录
$ docker rmi `docker images -aq` # 批量删除镜像
$ docker rm -f 135 # 删除容器进程记录:docker rm 容器id前3位
$ docker rm `docker ps -aq` # 批量删除无用容器进程记录,正在运行的容器进程记录不会被删除
- 改(运行)
# 参数[-i:交互式命令操作,-t:开启一个终端,/bin/bash:指定shell解释器,--name:给容器一个名字,-d:后台运行,-p:端口映射]
$ docker run centos # 如果docker容器没有在后台运行的进程,容器会直接挂掉
$ docker run hello-world # 如果镜像不存在,会先下载镜像,再运行
$ docker run -it centos /bin/bash # 交互式运行一个存活的docker容器
$ docker run -it 300 /bin/bash # 效果同上,使用镜像id前3位
$ docker run --name linux -d centos /bin/sh -c "while true; do echo hello linux; sleep 1; done;" # 运行一个有任务的docker容器
$ docker run -it --name "123" -p 6000:5000 镜像ID /bin/bash # 访问宿主机的6000端口,映射到docker的5000端口
$ docker exec -it 容器名 /bin/bash # 进入一个正在运行的容器空间
$ docker exec -it 容器ID /bin/bash
>> exit # 退出
$ docker start 58b5c58f05a0 # 启动容器
$ docker restart 58b5c58f05a0 # 重启容器
$ docker stop 58b5c58f05a0 # 停止容器进程:docker stop 容器ID
$ docker stop `docker ps -aq` # 停止所有容器进程
- 查
$ docker search centos # 在网络上查找相关的镜像
$ docker images # 查看本地机器,所有镜像文件内容
$ docker ps # 查看正在运行的进程
$ docker ps -a # 查看正在运行运行,以及挂掉的容器进程
$ docker ps -aq # 查看正在运行运行,以及挂掉的容器进程的ID
$ docker logs 5e9 # 查看容器内的运行日志
$ docker logs linux
$ docker logs -f linux # 查看容器内的运行日志,且持续检测
$ docker port 74acb2404339 # 查看容器内端口映射:docker port 容器ID
6.4 导出 & 导入
- 打包镜像
$ docker commit 6bb33d9e7b35 centos-vim # docker commit 容器ID 镜像名
- 导出镜像
$ docker save 3cfa61bbb105 > /opt/xxx.tar.gz # docker save 镜像ID > 导出路径(后缀必须是*.tar.gz)
- 导入
$ docker load < /opt/xxx.tar.gz # 导入镜像
$ docker tag a02f486b0106 xxx_name # 为镜像命名
6.5 文件互传
- 宿主机 ==> 容器
$ docker cp /root/crmProject/ 127279963cc5:/root # docker cp 宿主机文件或文件夹路径 容器ID:容器目录
- 容器 ==> 宿主机
$ docker cp 127279963cc5:/root/crmProject/ /root/ # docker cp 容器ID:容器目录 宿主机文件或文件夹路径
6.6 Dockerhub仓库
- 登录
$ docker login
- 导出
$ docker tag 7823b9cb35b2 ubuntu-test/xiang9872 # 保证镜像的tag是dockerhub账户名:docker tag 镜像ID 镜像名/镜像tag
$ docker push xiang9872:ubuntu-test # 推送:docker
6.7 Dockerfile
- 编写Dockerfile脚本,首字母必须大写,配置启动镜像的自动启动程序
$ vim Dockerfile
FROM crmProject
WORKDIR
EXPOSE 8080
CMD ["", ""]
- 创建镜像
$ docker build .
$ docker tag 0c9eb15d0de3 crmpro
$ docker run -d -p 80:80 crmpro
6.0 不要配置镜像加速❌
- 创建配置文件
$ vim /etc/docker/daemon.json
- 内容如下
{
"registry-mirriors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
]
}
- 重启docker
$ systemctl restart docker