Docker常用命令
目录
命令分类
常用技巧
-
查看容器ip地址
docker inspect --format '{{ .NetworkSettings.IPAddress }}' nginx-test
-
创建一个nginx容器
docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/:/etc/nginx -v /var/www/html:/var/www/html -v /var/log/nginx:/var/log/nginx nginx
-
进入容器并修改文件
jm@ubuntu:/tmp$ sudo docker exec -it 1498f0ea59f8 /bin/bash bash-4.4# ls atlassian-synchrony.log index logs plugins-temp synchrony-standalone.jar bundled-plugins journal plugins-cache shared-home temp confluence.cfg.xml lock plugins-osgi-cache synchrony-args.properties webresource-temp bash-4.4# vim confluence.cfg.xml bash: vim: command not found bash-4.4# vi confluence.cfg.xml
-
查看镜像构建过程
docker history --help Usage: docker history [OPTIONS] IMAGE Show the history of an image Options: --format string Pretty-print images using a Go template --help Print usage -H, --human Print sizes and dates in human readable format (default true) --no-trunc Don't truncate output -q, --quiet Only show numeric IDs
示例
sudo docker history phpdockerio/php72-fpm:latest --no-trunc |grep systemd
-
主机与容器之间数据拷贝
将主机/www/html目录拷贝到容器96f7f14e99ab的/html目录下。
docker cp /www/html 96f7f14e99ab:/html/
目标地址和源地址可以反过来,即从容器复制到主机中
-
查看容器日志
docker logs container-id/container-name
-
容器不能连接外网
比如在容器内连接远程地址失败,unknown host之类的错误,ping不通外网等。
解决:stop所有容器,并重启docker服务,再start需要的容器(大概率解决方案)
service docker restart
-
巧用镜像复用
-
容器间的link互通
Docker容器间的link和端口映射_风一样的男人的博客-CSDN博客_docker link
零基础docker学习笔记9:docker –link - 知乎
docker run -d --name container2 --link container1:c1 ....
相当于在container2中做了个container1的链接(快捷访问方式c1),相当于在container2中的/etc/hosts中注册了一个主机名c1指向container1。
还有个很适当的类比:nginx配置中的负载均衡配置器upstream的名字,比如以下的yar.rpc:
upstream yar.rpc { server 192.168.8.130:8091; server 192.168.8.130:8092; } ... location /{ proxy_pass http://yar.rpc; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
-
查看容器ip
# 查看所有容器实际分配的IP地址 sudo docker network inspect bridge # 查看指定容器 sudo docker inspect mysql03 |grep IP
@continue