Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

Docker 的一些使用过程记录

事先说明

  1. 因为在Docker中遇到了很多额外的问题,已经超出了OMV那篇文章的主线范围,所以再开一篇文章记录。

  2. 由于使用了国内的软件源,本文操作方式可在中国大陆范围内使用。

  3. 本文全部操作流程均在root账户下完成

  4. 本文目前仅针对x86_64架构的设备,对于arm或其他架构可能不适用,请酌情参考。

  5. Docker配置文件/etc/docker/daemon.json是一个标准的json文件,应用前请务必检查该文件是否有格式上的错误。该文件旨在修改或替代一些默认设置,因此在刚安装好乃至使用一段时间的 Docker 后该文件可能不会被立即创建,一般需要用户自行创建,创建时请务必注意换行标准为Unix(LF)而非Windows(CR LF)

  6. 本文章长期更新,如果这不是你第一次访问这篇文章,那么一次强制刷新(Ctrl+F5)或清除缓存是非常有必要的。

Docker 安装

清理残余组件

执行后可能会报错(软件包不存在等)但不必理会。

1
apt purge docker docker-engine docker.io

安装必备依赖

1
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Ubuntu添加仓库

添加公钥:

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加仓库:

如果是arm架构的设备需要把arch参数修改为arm64

Ubuntu Impish(21.10)版本可能会提示是否添加仓库,按【Enter】确认即可。

1
2
3
4
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

Debian添加仓库

添加公钥:

1
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

添加仓库:

如果是arm架构的设备需要把arch参数修改为arm64

1
2
3
4
add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"

安装

1
apt update&&apt install docker-ce -y

DockerHub 换源

编辑/etc/docker/daemon.json文件:

1
2
3
4
5
6
7
8
9
10
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

其中的https://xxx.mirror.aliyuncs.com地址需要自行申请,申请地址,左侧下方“镜像加速服务”。

Docker 改变数据位置

/etc/docker/daemon.json文件中添加如下项,然后执行systemctl restart docker重启Docker服务即可。强烈建议在全新安装后就更换数据位置,否则可能会出现权限问题和丢数据等问题。

1
2
3
4
5
{
...
"data-root": "/path/to/your/dataroot"
...
}

Docker 容器修改 DNS

/etc/docker/daemon.json文件中添加如下项,然后执行systemctl restart docker重启Docker服务即可。

1
2
3
4
5
6
7
8
{
...
"dns" : [
"1.1.1.1",
"8.8.8.8"
]
...
}

镜像加速源

科大镜像站官方说明:从科大校外对 Docker Hub 镜像缓存的访问会被 302 重定向至其他国内 Docker Hub 镜像源。从 2020 年 8 月 16 日起,从科大校外对 Google Container Registry 的镜像缓存的访问会被 302 重定向至阿里云提供的公开镜像服务(包含了部分 gcr.io 上存在的容器镜像);从科大校外对 Quay Container Registry 的镜像缓存的访问会被 302 重定向至源站。

镜像加速器镜像加速器地址
Docker 中国官方镜像https://registry.docker-cn.com
DaoCloud 镜像站http://f1361db2.m.daocloud.io
Azure 中国镜像https://dockerhub.azk8s.cn
阿里云https://<code_yourself>.mirror.aliyuncs.com
七牛云https://reg-mirror.qiniu.com
网易云https://hub-mirror.c.163.com
腾讯云https://mirror.ccs.tencentyun.com

Potainer

Portainer 是一个基于Web图形化的Docker管理工具,区分CE社区版(Community Edition)和BE商业版(Business Edition)。Portainer 无论是社区版还是商业版都没有中文版本,但有旧版本的第三方汉化(不建议使用)。

Portainer-CE(社区版)

  1. 创建数据库
1
docker volume create portainer_data
  1. 拉取镜像并启动
1
2
3
4
5
docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
  1. 访问https://localhost:9443(已设置SSL证书的前提下)或http://localhost:9000(未设置SSL证书)即可进入后台。

Portainer-EE(企业版)

  1. 创建数据库
1
docker volume create portainer_data
  1. 拉取镜像并启动
1
2
3
4
docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data portainer/portainer-ee:latest
  1. 访问https://localhost:9443(已设置SSL证书的前提下)或http://localhost:9000(未设置SSL证书)即可进入后台。

设置SSL

打开 Portainer ,Setting 👉 SSL certificate 上传 SSL 证书即可。

Docker 常用命令

此处所提到的常用命令可能并非是完整的,仅为个人常用或可能用到的。
完整的命令提示请参考Docker官方网站。

  1. 登录到 Docker Hub:docker login。(非安全方式

  2. 拉取镜像

1
2
3
4
5
6
7
8
9
# docker pull NAME[:TAG]
docker pull redis
docker pull nginx:latest
docker pull alpine:edge
docker pull ubuntu:20.04
# 拉取包含所有标签的镜像
docker pull --all-tags alpine
# 从未签名且可能不信任的位置拉取镜像(--disable-content-trust 参数)
docker pull --disable-content-trust localhost:5000/alpine
  1. 对容器操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看镜像列表
docker images
# 查看容器列表
docker ps
# 删除容器
docker rm NAME|CONTAINER-ID
docker rm 25fcd8c616d3
# docker | 删除镜像 | [-强制删除] | 容器名或ID
docker rmi [-f] NAME|CONTAINER-ID
docker rmi 54c9d81cbb44
docker rmi -f ubuntu:20.04
# 运行进入容器(退出容器exit)
docker run -it NAME|CONTAINER-ID [/bin/bash]
docker run -it ubuntu:20.04
  1. 容器的文件操作

从外部复制到容器内:

1
docker cp source container:target_path

从容器内部复制到容器外:

1
docker cp container:source_path output_path
  1. 容器镜像导入导出

导出镜像:docker save [options] images [images...]

1
docker save -o ubuntu-bak.tar ubuntu:20.04

导入镜像:docker load [options]

1
docker load -i ubuntu-bak.tar

查看日志

查看日志

1
docker logs -f CONTAINER_ID

限制日志查询范围

  1. 只查看最后200行:
1
docker logs --tail 200 CONTAINER_ID
  1. 只查看最后30分钟:
1
docker logs --since 30m CONTAINER_ID
  1. 查看某时间后的日志:
1
dockere logs -t --since "2022-06-13T18:11:00" CONTAINER_ID
  1. 查看某时间段的日志:
1
docker logs -t --since "2022-06-13T16:11:00" --until "2022-06-13T18:11:00" CONTAINER_ID

参考资料

排名不分先后

 简单说两句



联系站长 | 安装证书 | 友情链接

备案号:辽ICP备19013963号

萌ICP备 20219421 号

中国互联网违法和不良信息举报中心

架构版本号:8.0.10 | 本站已全面支持IPv6

本站由又拍云提供CDN加速服务和存储服务

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

Copyright 2022 LingXuanNing, All rights reserved.