Docker安装
-
如果在主机中存在"docker"和"docker-engine"这样的旧版本,就需要先将它们及其依赖卸载掉。
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
设置docker repository
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
安装docker engine
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果想要安装指定版本的docker engine, 可以通过
yum list
命令搜索出docker-ce的各个版本,再选择你准备下载的版本。#列举docker-ce版本 $ yum list docker-ce --showduplicates | sort -r #下载指定版本的docker-ce $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
-
启动docker
$ systemctl start docker $ systemctl enable docker $ systemctl status docker
Docker配置
-
配置国内镜像仓库
$ mkdir -p /etc/docker $ vi /etc/docker/daemon.json { "registry-mirrors": ["<your accelerate address>"] } #配置后需要重新加载配置文件,并重启docker $ sudo systemctl daemon-reload $ sudo systemctl restart docker
-
如果需要其他的配置信息,可以使用
man dockerd
命令查看有关docker的各个配置项。
Docker常用命令
镜像操作
# 查看本地镜像
docker images
# 搜索仓库的镜像
docker search
# 拉取仓库的镜像
docker pull docker.io/centos
# 利用 DockerFile 创建镜像
docker build <dockerfile>
# 删除已经终止的容器
docker rm
# 可以删除正在运行的容器
docker -f rm
# 导出镜像文件到本地
docker save -o centos.tar centos
# 或
docker export <container_id> > centos.tar
# 从本地将镜像导入
docker load --input centos.tar
# 或
docker load < centos.tar
# 将容器提交为镜像
docker commit <image_name> <container_id>
# 修改镜像标签
docker tag <OLD REPOSITORY>:<OLD TAG> <NEW REPOSITORY>:<NEW TAG>
# 将打标签的镜像上传镜像到仓库
docker push <REPOSITORY>:<TAG>
容器操作
# 创建一个容器但不启动它
docker create
# 创建并启动一个容器
docker run
# 停止容器运行,发送信号 SIGTERM
docker stop
# 启动一个停止状态的容器
docker start
# 重启一个容器
docker restart
# 删除一个容器
docker rm
# 显示状态为运行(Up)的容器
docker ps
# 显示所有容器,包括运行中(Up)的和退出的(Exited)
docker ps -a
# 查看容器的日志(stdout/stderr)
docker logs
# 显示容器的进程信息
docker top
# 在容器里执行一个命令,可以执行 bash 进入交互模式
docker exec
私有镜像仓库
-
运行registry容器
$ docker run -d -p 5000:5000 --restart=always --name registry registry:2
-
修改配置文件。为了让客户端服务器能够快速地访问刚刚在服务端搭建的镜像仓库(默认情况下是需要配置HTTPS证书的),这里在客户端配置一下私有仓库的可信任设置,让我们可以通过HTTP直接访问。
$ vi /etc/docker/daemon.json { "insecure-registries" : [ "your-server-ip:5000" ] } #重启docker $ sudo systemctl daemon-reload $ sudo systemctl restart docker
-
查看镜像
$ curl http://your-server-ip:5000/v2/_catalog
-
上传镜像
-
为要上传的镜像打Tag
$ docker tag your-image-name:tagname your-server-ip:5000/your-image-name:tagname
-
上传镜像到私有仓库
$ docker push your-registry-server-ip:5000/your-image-name:tagname
-
-
下载镜像
$ docker pull your-server-ip:5000/your-image-name:tagname