docker-使用,关联 docker-compose
简述
-
Docker Engine
包含一个daemon来管理容器、docker client 命令行工具
-
Docker Compose
更好用的docker前端,通过 docker-compose.yml
控制多个container
-
Docker Desktop
用来启动一个Linux 虚拟机运行container。Windows 和 Mac 系统必备,Linux也可以装。
安装
1
2
3
4
5
6
7 | sudo pacman -Syy docker docker-compose
sudo systemctl enable docker.service
# 查看版本
docker version
# deamon的状态
sudo docker info
|
适用版本:
Ubuntu Jammy 22.04 (LTS)
Ubuntu Impish 21.10
Ubuntu Focal 20.04 (LTS)
Ubuntu Bionic 18.04 (LTS)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | # Uninstall old versions
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
# Add Docker’s official GPG key
sudo mkdir -p /etc/apt/keyrings
# 如果是ubuntu
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 如果是 debian
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# set up the repository
# 如果是Ubuntu
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 如果是 Debian
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
配置
如果希望非root用户可以直接使用docker命令,必须将用户加入 docker 用户组,然后重新登录,重启docker.service
1 | sudo usermod -aG docker ${whoami}
|
docker 常用命令
container 相关命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 | # 列出正在运行的container
docker ps
docker container ls
# 列出已经关闭的container
docker ps --filter "status=exited"
# 检查container的详情
docker container inspect your-container-id
# see last container's details
docker container inspect $(docker container ls --last 1 --format '\{\{.ID\}\}')
# 停止容器
docker stop <容器ID>
# 重启容器
docker restart <容器ID>
# 启动已经停止的容器
docker start <容器ID>
# 删除容器
docker rm <容器ID>
# 删除所有容器
docker container rm -f $(docker container ls -aq)
# 启动shell连接到容器
docker container exec -it <容器ID> /bin/bash
docker container exec -it <容器ID> sh
# 或,for Windows
docker container exec -it <容器ID> cmd
|
Image 相关命令
1
2
3
4
5
6 | # --tag 参数指定 image 的 name
# 最后一个参数,说明build 的 local 目录,点表示当前目录
docker image build --tag web-ping .
# 不使用默认的Dockerfile,使用 -f 参数指定一个Dockerfile
docker image build -t my-image -f ./Dockerfile-v2 .
|
docker-compose 常用命令
1
2
3
4
5
6
7 | docker-compose up
docker-compose down
docker-compose start
docker-compose stop
docker-compose logs
|