Docker安装与基础操作
# docker安装
- Centos7.9
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker --show-duplicates
# 安装并启动 docker
yum install -y docker-ce-24.0.4 docker-ce-cli-24.0.4 containerd.io-1.6.31
# 重启 docker,并添加开机自启动
systemctl enable docker --now
2
3
4
5
6
7
8
- Ubuntu22.04
#阿里源docker-version: '5:20.10.19~3-0~ubuntu-jammy'
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-get -y update
apt-cache madison docker-ce |grep 19 #获取版本,安装最新版本:apt-get -y install docker-ce
apt-get -y install docker-ce=5:20.10.19~3-0~ubuntu-jammy
#24.04: apt-get -y install docker-ce=5:26.1.4-1~ubuntu.24.04~noble
2
3
4
5
6
7
8
9
- apt安装docker[Arrch64]
curl -fsSL http://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=aarch64] http://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get install docker-ce
2
3
4
5
- 镜像加速与信赖http://192.168.40.55:5000:
vi /etc/docker/daemon.json
{
"dns" : [
"114.114.114.114",
"8.8.8.8"
],
"bip": "172.40.55.0/16",
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries": ["192.168.40.55:5000"],
"data-root": "/data/docker",
"storage-driver": "overlay2",
"registry-mirrors": ["https://registry.docker-cn.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"2048m", "max-file":"3"},
"live-restore": true
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
参数 | 说明 |
---|---|
graph | docker引擎工作目录,高版本:data-root |
storage-driver | 存储驱动 |
registry-mirrors | 镜像加速源 |
insecure-registries | 私有仓库信赖 |
bip | 容器IP |
exec-opts | 基于systemd |
log-driver | 容器日志格式, |
log-opts | 容器日志大小,级别 |
live-restore | 是否基于docker引擎存活 |
# Docker常用命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG..]
OPTIONS选项:
参数 | 说明 |
---|---|
-i | 启动一个可交互的容器,并持续打开标准输入 |
-t | 终端关联到容器的标准输入输出上 |
-d | 容器放置后台运行 |
--rm | 退出后删除容器 |
--name | 容器唯一名 |
IMAGE | 镜像 |
COMMAND | 容器运行的命令 |
- 查看
docker ps --no-trunc
docker images
docker volume ls
docker network ls
2
3
4
- test 用户可以使用docker 命令
sudo usermod -aG docker test
- 创建启动容器 run=create+start
docker run -d -p 80:80 nginx:latest
docker run -d -p 80:80 nginx1.16:v1 /bin/bash /init.sh
- 使用systemctl 服务 --privileged=true
docker run -it docker.io/centos:centos7.5.1804 /usr/sbin/init
- 强制删除容器,(包括正在运行) rm -f
docker rm -f `docker ps -a -q`
- 进入容器 -it
docker exec -it ce0a21e9b21f /bin/bash
- 查看容器默认日志输出 logs
docker logs -f ce0a21e9b21f
docker logs -f --tail 100 ce0a21e9b21f
docker logs --since="2023-06-19T17:25" ce0a21e9b21f
- 设置主机名 -h
docker run -d -p 80:80 -h prod-web01 nginx:latest
- 设置容器名,开机自启动 --restart=always
docker run -d -p 80:80 --name prod-web01 --restart=always nginx:latest
- 容器停止自动删除 --rm
docker run -it --rm nginx:latest
- 传参 -e
docker run -d -p 80:80 -h prod-web01 -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd nginx:latest
- centos7.5 官方镜像
#wget http://download.yfklife.cn/blog/dba/k8s/images/docker_centos7.5.1804.tar.gz
# 镜像相关
- 登录私有镜像仓库
docker login docker.io
auth存放文件:/root/.docker/config.json,echo "XXXX"|base64 -d
- 搜索镜像
docker search centos
- 拉取镜像
docker pull docker.io/centos
- 导出镜像
docker save docker.io/centos:centos7.5.1804 > docker_centos7.5.1804.tar.gz
- 导入镜像(带版本号)
docker load -i docker_centos7.5.1804.tar.gz
- 提交镜像
docker commit ce0a21e9b21f nginx1.16:v1
docker commit -p ce0a21e9b21f nginx1.16:v1
-p:类似快照
- 查看镜像描述
docker inspect ce0a21e9b21f
- 查看镜像构建历史
docker history nginx-web:v4
# 逻辑卷相关
- 创建逻辑卷
docker volume create --name test
- 查看逻辑卷信息
docker volume ls
docker volume inspect test
- 删除逻辑卷
docker volume rm name1 name2
- 创建容器,挂载目录,逻辑卷
docker run -d -p 80:80 -p 80:81 -v name1:/usr/share/nginx/html/ -v /data:/opt/wwwroot nginx:latest
# 网络相关
- 列所有列表的网络
docker network ls
- 不指定网络驱动时默认创建的bridge网络
docker network create default_network
- 查看网络内部信息
docker network inspect default_network
- 移除指定的网络
docker network rm default_network
- 容器间互联
docker run -d --link nginx-web:v4
# 自定义网卡(版本1.13.1)
- 创建桥接网卡
brctl 工具包:yum install bridge-utils -y
添加设备: brctl addbr br1
指定IP: ip addr add dev br1 10.0.10.1/24
启动桥接网卡IP: ip link set dev br1 up
添加配置,重启服务
cat /etc/sysconfig/docker-network
DOCKER_NETWORK_OPTIONS="-b=br1"
systemctl restart docker
2
3
4
# https://download.yfklife.cn/blog/cloud/docker/docker-compose_ubuntu-22.04.tar
# https://download.yfklife.cn/blog/public/docker/runc-1.0.1.amd64
# https://download.yfklife.cn/blog/public/docker/runc-1.0.3.amd64
2
3
4