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