常用命令
查看日志参考链接
1. 删除镜像命令: docker rmi -f a19e9f722029
2. 查看日志命令: docker logs -tf --tail 100 a1f9192762c6
3. 查看镜像内容(元数据): docker inspect a1f9192762c6
4. 进入当前正在运行的容器:docker exec -it 容器id /bin/bash
5. 查看容器信息:docker inspect 容器id
6. 查看网络:docker network inspect docker_default
7. 查看cpu状态:docker stats
8. 停止镜像容器:docker stop a1f9192762c6
9. 启动redis并设置密码:docker run -itd --name redis -p 6379:6379 redis --requirepass "xxxxxx"
10. 限制容器内存:docker run -d --name elasticsearch -e ES_JAVA_OPTS="-Xms64m -Xmx512m" ( 最小内存64m 最大内存512m )
11. 提交镜像:docker commit -a="用户" -m="描述信息" 容器id 新镜像名称:版本
**数据卷**:
12. 使用数据卷挂载启动:docker run -it -v 主机目录:容器目录 容器名称 /bin/bash
-v 数据卷
-P 随机映射端口
13. 具名挂载启动:docker run -it -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx
14. 匿名挂载启动:docker run -it -d -P --name nginx02 -v /etc/nginx nginx
-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径:容器内路径 # 指定路径挂载
15. 查看docker数据卷列表:docker volume ls
16. 查看数据卷路径:docker volume inspect 数据卷名称(juming-nginx)
17. 设置数据卷只读权限:docker run -it -d -P --name nginx01 -v juming-nginx:/etc/nginx:ro nginx
18. 设置数据卷读写权限:docker run -it -d -P --name nginx01 -v juming-nginx:/etc/nginx:rw nginx
**DockerFIle**
19. 生成个人镜像:docker build -f /home/docker-test-volume/dockfile -t test/centos:1.0
-f dockerfile路径
-t 镜像名称:tar版本号
使用Docker安装Nginx
1. 查找Nginx:docker search nginx
2. 下载nginx:docker pull nginx (默认拉取最新版本)
3. 查看镜像:docker images
4. 根据镜像id启动nginx:docker run -d --name nginx01 -p 3344:80 nginx
-d 后台运行
--name 给容器命名(别称)‘
-p 宿主机端口:容器内部端口
5. 查看是否启动成功:docker ps
6. 查看是否可以正常访问:curl localhost:3344
常见问题:
Docker 在启动容器时,报出了下面的错误:
docker: Error response from daemon: driver failed programming external connectivity on endpoint gateway_cc39fe5306c1 (cc39fe5306c1ba7633fa14b9bcddb66536153619bf57b84b30673e2328e9284g): Bind for 0.0.0.0:80 failed: port is already allocated.
查看进程,发现相关的容器并没有在运行,而 docker-proxy 却依然绑定着端口:
$ docker ps
$ ps -aux | grep -v grep | grep docker-proxy
停止 doker 进程,删除所有容器,然后删除 local-kv.db 这个文件,再启动 docker 就可以了。
$ sudo service docker stop
$ docker rm $(docker ps -aq)
$ sudo rm /var/lib/docker/network/files/local-kv.db
$ sudo service docker start
docker网络强制清理
1. docker network inspect docker_default
2. docker network disconnect docker_default docker_audit-mobile_1
3. docker network connect docker_default docker_audit-mobile_1