Docker的常用命令和使用

282 阅读3分钟

安装(centos)

自动安装

官方命令(略慢)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国内镜像(快)

curl -sSL https://get.daocloud.io/docker | sh

手动安装

  1. 较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 安装所需的软件包
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 设置稳定的仓库(以下三个镜像源,任选一个)

官方源地址

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里云


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

清华大学源


sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
  1. 安装Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io

启动(docker服务)


sudo systemctl start docker

docker基本操作

仓库管理

docker login // 登陆docker账户
docker logout // 登出docker账户
docuker push username/镜像名称  // 推送本地自己构建的镜像,注意推送的时候镜像的命名格式必须为 username/镜像名

镜像操作

docker images  // 查看所有的镜像
docker pull <镜像名称> // 从docker hub下载对应的镜像
docker rmi <镜像名称> // 删除镜像
docker search <镜像名称> // 查找所有的镜像
docker commit -m '更新镜像的描述' -a '本次更新的作者' <容器id> 新的镜像的名称  // 根据一个容器生成一个新的镜像
docker build -t <新创建的目标镜像的名称> [Dockerfile所在的目录] // 通过Dockerfile构建镜像, 此命令需要自己编写Dockerfile文件
docker tag <镜像id> [新的名字] // 可以给镜像改个名字

容器操作(镜像实例)

docker run --name <名称> -it -p <宿主机端口:容器端口> -d <镜像名称> /bin/bash   
// 以某个镜像为基础开启一个镜像实例(容器),
// i 表示交互式操作 t 表示终端 d表示后台运行 p 将容器内部使用的网络端口映射到我们使用的主机上,若为 ::3000,则表示宿主机上所有的端口都映射到容器的3000端口上  -name 可以为自己的容器实例起一个名字

docker ps   // 查看所有正在运行的容器

docker ps -a  // 查看所有的容器(运行的和停止的)

docker stop <容器id> // 停止一个容器

docker start/restart <容器id> // 恢复一个容器

docker exec -it <容器id> /bin/bash  // 进入一个后台运行的容器内部

docker rm -f <容器id> // 删除已经停止的容器

docker container prune // 清理掉所有处于终止状态的容器

docker port <容器id> // 返回该容器的映射端口情况

docker cp <宿主机文件路径> <容器id:容器内文件路径> // 拷贝宿主机的文件到容器内
docker cp <容器id:容器内文件路径> [宿主机文件路径] // 拷贝容器内的文件到宿主机内

docker inspect <容器id> // 查看容器被分配的内网ip地址

容器互联

docker network create -d bridge <网络名称>  // 该命令用于创建一个docker网络,-d:参数指定 Docker 网络类型,有 bridge、overlay。其中 overlay 网络类型用于 Swarm mode,可暂不考虑

docker network ls  // 查看自己创建的所有网络

docker run -it --network <网络名称> [容器id] //启动的容器可以通过--network参数连接到创建的网络

// 被连接的容器,在容器内可以通过各自的 容器名或者容器id进行通信

docker network --help  // 查看更多的用法