安装

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce docker-ce-cli containerd.io

设为开机启动

systemctl enable docker

非常重要!!!否则可能重启机器后再次启动 docker 时会出现以下错误信息:

1
Failed to start docker: Unit docker is masked.

查看运行状态

systemctl status docker

停止

systemctl stop docker

启动

systemctl start docker

重启

systemctl restart docker

查看版本信息

docker version

查看命令帮助

docker --help

列出镜像

docker images

拉取镜像

docker pull [OPTIONS] NAME[:tag]

配置镜像加速器

参考 阿里云容器镜像加速器服务

查找镜像

docker search NAME

删除镜像

docker rmi NAME1/ID1 NAME2/ID2

查看容器

  • 查看正在运行的容器:docker ps
  • 查看所有容器:docker ps -a
  • 查看最后一次运行的容器:docker ps -l

退出容器

exit

创建交互式容器

docker run -i -t --name=[NAME] IMAGE /bin/bash

  • -i:交互式操作
  • -t:分配一个可操作容器的终端
  • --name=[NAME]:指定容器名称(唯一)

可选参数可合并:docker run -it --name [NAME] IMAGE /bin/bash

交互式容器 exit 退出后容器自动关闭。

创建守护式容器

docker run -itd --name NAME IMAGE /bin/bash

-d:指定容器运行模式

进入守护式容器

docker exec -it [CONTAINER ID] /bin/bash

守护式容器 exit 退出后容器继续运行。

启动已停止运行的容器

docker start [CONTAINER ID]

停止容器

docker stop [CONTAINER ID]

重启容器

docker restart [CONTAINER ID]

删除容器

docker rm -f [CONTAINER ID]

删除时容器必须是停止状态。

删除全部容器(先查询出所有容器再删除):

1
docker rm `docker ps -a -q`

查看容器详细信息

docker inspect [CONTAINER NAME]

查看容器详细信息中某个属性的详细信息

1
`docker inspect -f='{{.[属性名]}}' [CONTAINER NAME]`

1
`docker inspect --format='{{.[属性名]}}' [CONTAINER NAME]`

文件拷贝

docker cp source target

可将宿主机的文件/目录拷贝至容器或将容器内的文件/目录拷贝至宿主机。

example

从宿主机(source)拷贝至容器内(target):

1
docker cp ./1.txt container1:/root

从容器内(source)拷贝至宿主机(target):

1
docker cp container1:/root ./1.txt

端口映射

创建容器时指定 -p 参数将容器内端口映射到宿主机的端口。

1
docker run -itd --name=NAME -p 宿主机端口:容器端口 IMAGE /bin/bash

目录挂载

创建容器时指定 -v 参数进行目录挂载。

1
docker run -itd --name=NAME -v 宿主机目录:容器目录 IMAGE /bin/bash

镜像打包

docker save -o [dir/NAME.tar] IMAGE_NAME

将打包的镜像上传至其它服务器

scp ./NAME.tar ip:/root/dir

导入打包镜像

docker load -i /root/dir/NAME.tar

容器打包

docker export -o /root/CONTAINER_NAME.tar CONTAINER_NAME

导入打包容器

docker import CONTAINER_NAME.tar CONTAINER_NAME