Docker相关

                           
2020年03月30日

一、安装

1、安装 Docker

方法一

Docker 下载速度可能较慢,可以设置阿里云镜像加速。

安装/升级Docker

使用官方安装脚本自动安装 Docker (仅适用于公网环境)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

方法二

腾讯云上 Docker 的安装方式

经测试 Ubuntu 18.04.1 LTS 系统自带 Docker,无需安装 Docker 。

如果需要安装请执行以下代码

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

测试是否安装成功

docker run hello-world

如果提示 Hello from Docker! 则安装正常。

2、修改镜像源以加速下载

阿里云

阿里云-镜像加速器

如果不存在则创建 daemon.json

{
  "registry-mirrors": ["https://*******.mirror.aliyuncs.com"]
}

更改完成后重启 Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

腾讯云

使用 DockerHub 加速器

修改 /etc/docker/daemon.json 文件,并写入以下内容,如果文件不存在请新建并写入以下内容

{
   "registry-mirrors": [
       "https://mirror.ccs.tencentyun.com"
  ]
}

重启 Docker

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

执行 docker info 命令,返回结果中包含以下内容,则说明配置成功。

Registry Mirrors:
 https://mirror.ccs.tencentyun.com

二、Docker 相关命令

1、查看正在运行的容器、启动、停止、移除容器

原网页:Docker stop 停止/remove 删除所有容器

$ docker ps // 查看所有正在运行容器
$ docker stop containerId //停止某一容器,containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop containerId // stop停止某一容器
$ docker  rm containerId  //remove删除某一容器

2、进入 Docker 目录

docker exec -it containerID /bin/bash

$docker exec -it 42c921af1aff /bin/bash
$ls

三、Docker 相关问题

1、端口映射问题

运行镜像并映射到 8080 端口

docker run -dit --restart=always --name=draw -p 8080:8080 fjudith/draw.io

如果修改映射到 8888 端口则命令为

docker run -dit --restart=always --name=draw -p 8888:8080 fjudith/draw.io

【注意】修改映射端口时修改的是 冒号 前面的数字。

【注意】如果因为端口号输错需要更改但命令行出现下面的报错,需要停止并移除该容器,然后新建容器并映射,处理的方法在下面。

docker: Error response from daemon: Conflict. The container name "/draw" is already in use by container "819a7f7a9ad448b0f95ec8630e60ddd14b384d685cc5a8171b5db16948e0f4c7".
You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

2、镜像已存在

创建新Docker容器时出现“The container name "/xxx" is already in use by container xxxxxxxxxxx…”问题的解决办法

docker: Error response from daemon: Conflict. The container name "/draw" is already in use by container "819a7f7a9ad448b0f95ec8630e60ddd14b384d685cc5a8171b5db16948e0f4c7".
You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

(1)停止该容器

$ docker ps // 查看所有正在运行容器(如果没有显示相关内容则不需要停止)
$ docker stop containerId //停止某一容器,containerId 是容器的ID
例如:docker stop 819a7f7a9ad4

【注意】如果使用 docker ps 没显示该容器正在运行,请使用 docker ps -a 查找所有容器,并参照以下方法移除该容器。

(2)移除容器

$ docker  rm containerId  //remove删除某一容器
例如:docker rm 819a7f7a9ad4

(3)再次执行启动镜像及端口映射命令

docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8885:80 -p 9269:9269/udp wiznote/wizserver

冷场莹