docker 命令用法举例
2.4.1. docker - A self-sufficient runtime for containers
2.4.1.1. 连接远程主机
TCP 2375
Neo-iMac:~ neo$ docker -H 192.168.30.10:2375 info
SSH 方式
Neo-iMac:~ neo$ docker -H ssh://root@192.168.30.13 info Client: Context: default Debug Mode: false Plugins: buildx: Build with BuildKit (Docker Inc., v0.6.3) compose: Docker Compose (Docker Inc., v2.1.1) scan: Docker Scan (Docker Inc., 0.9.0) Server: Containers: 3 Running: 2 Paused: 0 Stopped: 1 Images: 178 Server Version: 20.10.11 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 1 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2 Default Runtime: runc Init Binary: docker-init containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d runc version: v1.0.2-0-g52b36a2 init version: de40ad0 Security Options: seccomp Profile: default Kernel Version: 4.18.0-338.el8.x86_64 Operating System: CentOS Stream 8 OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 7.514GiB Name: localhost.localdomain ID: XGEY:2L25:2GTC:LGK5:3D7D:TC5B:EBBU:5GZJ:VDZ2:S67Z:T7VK:O7WD Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: registry.netkiller.cn 127.0.0.0/8 Registry Mirrors: https://registry.cn-hangzhou.aliyuncs.com/ https://docker.mirrors.ustc.edu.cn/ https://registry.docker-cn.com/ http://hub-mirror.c.163.com/ Live Restore Enabled: false
设置 DOCKER_HOST 环境变量
Neo-iMac:~ neo$ export DOCKER_HOST=tcp://192.168.30.10:2375 Neo-iMac:~ neo$ docker info Client: Context: default Debug Mode: false Plugins: buildx: Build with BuildKit (Docker Inc., v0.6.3) compose: Docker Compose (Docker Inc., v2.1.1) scan: Docker Scan (Docker Inc., 0.9.0) Server: Containers: 11 Running: 11 Paused: 0 Stopped: 0 Images: 11 Server Version: 20.10.10 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 1 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc Default Runtime: runc Init Binary: docker-init containerd version: 5b46e404f6b9f661a205e28d59c982d3634148f8 runc version: v1.0.2-0-g52b36a2 init version: de40ad0 Security Options: seccomp Profile: default Kernel Version: 4.18.0-348.el8.x86_64 Operating System: CentOS Stream 8 OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 15.39GiB Name: testing ID: 5GBU:CMWS:VIVP:TREZ:Y5AP:OGOW:EABK:NP4R:AWUA:S4J2:2YQ2:U7MT Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://hub-mirror.c.163.com/ https://mirror.baidubce.com/ https://docker.mirrors.ustc.edu.cn/ Live Restore Enabled: false
2.4.1.2. 查看 docker 信息
neo@MacBook-Pro ~ % docker info Containers: 9 Running: 8 Paused: 0 Stopped: 1 Images: 5 Server Version: 18.09.2 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce runc version: 09c8266bf2fcf9519a651b04ae54c967b9ab86ec init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 4.9.125-linuxkit Operating System: Docker for Mac OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 1.952GiB Name: linuxkit-025000000001 ID: IT7A:OHXM:XG4E:HX53:ZMA3:GIRA:CYMP:6IJF:QKZ5:MQI4:6LU2:ZD7Z Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): true File Descriptors: 70 Goroutines: 88 System Time: 2019-03-31T04:23:51.43837431Z EventsListeners: 2 HTTP Proxy: gateway.docker.internal:3128 HTTPS Proxy: gateway.docker.internal:3129 Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false Product License: Community Engine
iMac
iMac:~ neo$ docker info Client: Debug Mode: false Plugins: buildx: Build with BuildKit (Docker Inc., v0.3.1-tp-docker) scan: Docker Scan (Docker Inc., v0.3.3) app: Docker Application (Docker Inc., v0.8.0) Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 19.03.13-beta2 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 4.19.76-linuxkit Operating System: Docker Desktop OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 3.848GiB Name: docker-desktop ID: LWQ5:KBRL:SE7U:SJZ4:ANS2:JEQD:5YJO:MVRG:HIEA:XDWD:LQIZ:EJPX Docker Root Dir: /var/lib/docker Debug Mode: false HTTP Proxy: gateway.docker.internal:3128 HTTPS Proxy: gateway.docker.internal:3129 Registry: https://index.docker.io/v1/ Labels: Experimental: true Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://registry.docker-cn.com/ Live Restore Enabled: false Product License: Community Engine
2.4.1.3. run
run
$ sudo docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world
查看 docker run 参数
pip3 install runlike
格式:runlike -p <容器名>|<容器ID>
-it
neo@Netkiller-iMac ~> docker run -it nginx:latest /bin/sh
--restart 参数
该参数用于指定自动重启docker容器策略,包含3个选项:no,on-failure[:times],always,unless-stopped
no 默认值,表示容器退出时,docker不自动重启容器 docker run --restart=no [容器名] on-failure 若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃 docker run --restart=on-failure:3 [容器名] always 容器退出时总是重启 docker run --restart=always [容器名] unless-stopped 容器退出时总是重启,但不考虑Docker守护进程启动时就已经停止的容器 docker run --restart=unless-stopped [容器名]
--privileged 让 root 具备真正的 root 权限
[root@localhost ~]# docker run -t -i centos:latest bash [root@test /]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 254:0 0 59.6G 0 disk |-vda1 254:1 0 59.6G 0 part /etc/hosts `-vda2 252:1 0 1G 0 part [root@test /]# mount /dev/vda2 /mnt/ mount: permission denied
加入 --privileged 选项后
[root@netkiller ~]# docker run -t -i --privileged centos:latest bash [root@test /]# mount /dev/vda2 /mnt/
设置环境变量
docker run -e VAR1=value1 --env VAR2=value2 ubuntu docker run --env VAR1=value1 --env VAR2=value2 ubuntu
DNS
docker run --dns 8.8.8.8 busybox:latest
add-host
docker run --add-host=test.netkiller.cn:172.16.0.73 busybox:latest
暴漏端口
docker run -p 80:80 ubuntu bash docker run -p 127.0.0.1:80:80 ubuntu bash docker run -p 127.0.0.1:80:80/tcp ubuntu bash
内存资源分配
-m 或者--memory :分配内存
--memory-swap:分配临时内存
docker run -it -m 200M --memory-swap=400M ubuntu
给ubuntu分配200兆内存和400M交换分区,一般memory-swap默认是内存两倍。
2.4.1.4. start / stop / restart
sudo docker start silly_bohr silly_bohr $ sudo docker stop silly_bohr silly_bohr $ sudo docker restart silly_bohr silly_bohr
2.4.1.5. 更新容器参数
为容器增加 --restart 参数
如果容器启动时没有设置–restart参数,则通过下面命令进行更新: docker update --restart=always [容器名]
docker update --restart=unless-stopped chatgpt
root@homeassistant:~# docker inspect homeassistant | grep -i -A 5 RestartPolicy "