搬砖小抄

docker小抄

字数统计: 727阅读时长: 3 min
2020/02/23 Share

容器时代,不掌学点基本功怎么行?
但是,咱也不是专业运维,所以光学过不行,会忘。得记一笔。
而且,由于一些不可描述的原因,只要是涉及到互联网肯定会有一些坑。

安装Docker-CE

CentOS

1
2
3
4
5
6
7
8
9
# 删除旧版(可选)
sudo yum remove docker docker-common docker-selinux docker-engine
# 安装一些依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 下载repo文件(阿里云)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装
sudo yum makecache fast
sudo yum install docker-ce

无需将用户添加到docker用户组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查找 docker 组,确认其是否存在
cat /etc/group | grep docker
# 列出自己的用户组,确认自己在不在 docker 组中
groups

# 如果 docker 组不存在,则添加之:
sudo groupadd docker

# 将当前用户添加到 docker 组
sudo gpasswd -a ${USER} docker

# 重启服务
sudo service docker restart

安装Docker-Compose

1
2
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

常用命令

1
2
3
4
5
6
7
8
9
10
# 构建(更新)并启动
docker-compose -f [docker-compose文件] [up]
# 构建
docker-compose -f [docker-compose文件] build
# 某一个服务
docker-compose -f [docker-compose文件] build [服务名称]
# 运行某个服务的镜像
docker-compose run [服务名称]
# 启动某个服务的容器
docker-compose start [服务名称]

镜像服务器和私服

/etc/docker/daemon.json

1
2
3
4
5
{
"registry-mirrors": ["<your accelerate address>"],
"insecure-registries":["<private repository url>"],
"dns": ["8.8.8.8","8.8.4.4"]
}

例子

1
2
3
4
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["docker.example.xyz:28083"]
}

保存私服登录凭据

1
sudo docker login -u docr-user -p xxx docker.example.xyz:28083

运行参数

退出时删除容器

--rm

端口映射

-p 宿主端口:容器内端口,端口支持批量映射

目录挂载

-v 宿主路径:容器内路径

容器连接

--link name:alias,这里 name 是我们要连接的container的名字, alias 是一link的别名,连接后,新容器和被连接的容器的网络就互通了(容器名就是主机名)。
例子

1
2
3
4
# WEB 应用与数据库连接
docker run -d -P --name web --link db:db training/webapp python app.py
# 启动busybox容器,并和db容器连接
docker run -it --rm --name busybox1 --link db:db busybox sh

运维

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#进入容器
docker exec -it 容器名称 sh
#查看容器详情:
docker inspect 容器名称
#启动容器,覆盖`ENTRYPOINT`
docker run -it --entrypoint="/bin/bash" 容器名称
# 清理无用的镜像
docker image prune
# 清理无用的容器
docker container prune
# 清理卷
docker volume prune
# 清理全部,除了卷
docker system prune
# 清理全部,除了卷
docker system prune --volumes

高级命令

1
2
3
4
5
6
7
8
# 查看镜像
docker ps -a
# 停止所有容器
docker stop $(docker ps -aq)
# 删除所有容器
docker rm $(docker ps -aq)
# 删除所有镜像
docker rmi $(docker images -q)
CATALOG
  1. 1. 安装Docker-CE
    1. 1.1. CentOS
  2. 2. 安装Docker-Compose
  3. 3. 镜像服务器和私服
  4. 4. 运行参数
    1. 4.1. 退出时删除容器
    2. 4.2. 端口映射
    3. 4.3. 目录挂载
    4. 4.4. 容器连接
  5. 5. 运维