添加用户至 docker 用户组

1
sudo usermod -aG docker $USER

命令选项

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run
-d:在后台运行容器。
--name:为容器指定一个名称。
-p:将容器端口映射到主机端口。
-e:设置环境变量。
-v:将主机目录挂载到容器中。
--rm:容器退出时自动删除。
-it:以交互模式运行容器。
--network:指定容器连接的网络。
--restart:容器退出时的重启策略(如 no、on-failure、always、unless-stopped)。
--link:链接到另一个容器。
-u:指定用户。
--privileged=true:特权模式,使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。

进入容器shell

1
2
docker exec -it <container_name> bash
docker exec -it <container_name> sh

容器运行日志

替换为你希望查看日志的行数; 替换为容器名

1
docker logs -f --tail=<number_of_lines_to_start_with> <container_name>

查看容器信息

1
docker inspect <container_name>

代理

docker pull代理

1
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
1
2
3
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"

或者

1
2
sudo mkdir /etc/docker
sudo vim /etc/docker/daemon.json
1
2
3
4
5
6
7
{
"proxies": {
"http-proxy": "http://127.0.0.1:7890",
"https-proxy": "http://127.0.0.1:7890",
"no-proxy": "localhost,127.0.0.1"
}
}

容器走宿主机代理

宿主机代理开启允许局域网访问,假设容器的网络模式是bridge,局域网ip为172.17.0.x

1
2
export http_proxy="http://172.17.0.1:7890"
export https_proxy="http://172.17.0.1:7890"

docker-compose

建立用docker-compose创建容器,方便维护

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
services:
web:
container_name:
image:
user: ":"
#端口映射
ports:
- ":/tcp"
- ":/udp"
#挂载
volumes:
- ":"
#环境变量
environment:
- xxx=xxx
command:
dns:
network_mode: ""
networks:
demo_network:
ipv4_address: 172.24.0.2
restart: unless-stopped

//交互模式
stdin_open: true
tty: true
networks:
demo_network:
ipam:
config:
- subnet: 172.24.0.0/24

push docker image

1
2
3
4
5
6
7
docker commit 容器名或id <REPOSITORY>/<IMAGE NAME>:<TAG>

//重新标记(可选,字母必须小写)
docker tag <IMAGE ID> <REPOSITORY>/<IMAGE NAME>:<TAG>

docker login #登录
docker push <REPOSITORY>/<IMAGE NAME>:<TAG>