Skip to content

Docker使用指南

Docker的安装

CentOS下安装docker

yum换源(这个换源只用配一次)

shell
# 备份原有的yum源配置文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里云的yum源配置文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清除 yum 缓存并重新生成缓存
yum clean all && yum makecache

# 更新软件包列表
sudo yum check-update

# 安装必要依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加docker源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker
sudo yum install docker-ce

# 启动docker
systemctl start docker

# 设置自启动
systemctl enable docker

docker完全删除

shell
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine docker-ce
Ubuntu下安装docker
shell
# 安装必要依赖包
apt-get install ca-certificates curl gnupg lsb-release


# 添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 更新软件包列表
sudo apt-get update

# 安装docker
apt-get install docker-ce docker-ce-cli containerd.io

# 配置用户组(可选)
# 默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:
sudo usermod -aG docker $USER

# 启动docker
systemctl start docker

# 设置自启动
systemctl enable docker

配置docker镜像加速器

配置 daemon.json

  1. 创建docker文件夹

    shell
    mkdir -p /etc/docker
  2. 创建daemon.json

    shell
    touch /etc/docker/daemon.json
  3. 编辑daemon.json

    shell
    vim /etc/docker/daemon.json

    输入以下内容

    json
    {
        "registry-mirrors": ["https://1ms.run","https://xdark.top","https://fast360.xyz"]
    }
  4. 保存退出并重新加载

    shell
    systemctl daemon-reload
    systemctl restart docker

Docker操作

镜像操作部分
shell
dokcer pull name:tag
doker push name:tag
docker run ...
docker rmi image
docker images
数据卷操作部分
shell
docker volume ls
docker volume inspect
docker volume rm name
docker volume create name
docker volume prune
docker volume --help
容器操作部分
shell
docker start name
docker stop name
docker pause name
docker unpause name
docker logs name
docker ps [-a]
docker rm ...
docker命令查看
shell
docker --help

Docker构建镜像

Dockerfile文件

Dockerfile文件示例

Dockerfile
FROM python:3.8-slim-buster
WORKDIR /app
COPY . .
RUN pip3 install -r requirements.txt
CMD ["python3", "app.py"]
  • FROM: 基础镜像
  • WORKDIR: 镜像内工作目录
  • CPOY: 将宿主机上的文件复制到容器内的目录下

    "."表示当前目录的所有文件

  • RUN: 在构建镜像时执行的命令
  • CMD: 在运行时执行的命令
构建镜像
shell
docker build -t name:tag . [-f Dockerfile]

-t 表示指定镜像名称和版本 name:tag表示镜像名称和版本 . 表示当前目录 -f 指定Dockerfile文件名(默认为Dockerfile)

Docker应用实例

els创建网络:
shell
docker network create es-net
els创建容器命令:
shell
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 elasticsearch:7.12.1 \
-e "cluster.name=es-docker-cluster":设置集群名称
kibana创建容器命令:
shell
docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.12.1
下载analysis-ik分词器
shell
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.12.1

注: 容器不要删!!!!!

Redis启动命令
shell
docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
Rabbitmq启动命令
shell
docker run -e RABBITMQ_DEFAULT_USER=#username -e RABBITMQ_DEFAULT_PASS=#password --name mq --hostname mq1 -p 15672:15672 -p 5672:5672 -d rabbitmq:3-management