当前位置:   article > 正文

docker使用技巧

docker run -d -p 80:8000 --restart=always

01.安装Docker

  1. curl -sSL https://get.docker.com/ | sh
  2. centos6 epel
  3. yum install -y docker-io
  4. centos 7
  5. yum install -y docker-engine
  6. service docker start
  7. service docker stop
  8. service docker restart

02.查看Docker信息

  1. docker info
  2. 文件位置 /var/lib/docker

03.查找镜像

  1. 官方网站查找 https://hub.docker.com/
  2. docker search centos(镜像名称)
  3. --automated 自动化选项
  4. --no-trunc 显示完全ID
  5. -s 最低星级 25个结果

04.查看3星级的镜像

docker search -s 3 centos  

05.拉取镜像

  1. docker pull <镜像名称>:<标签>
  2. docker pull centos
  3. -a 所有镜像
  4. docker daemon启动参数 "--insecure-registry=0.0.0.0/0"

06.使用自定义镜像站点修改

  1. /etc/default/docker
  2. DOCKER_OPTS="--REGISTRY-MIRROR=https://www.daocloud.io"
  3. docker daemon启动参数 "--insecure-registry=0.0.0.0/0"

07.列出镜像

  1. docker images
  2. -a 显示所有镜像
  3. -f 过滤条件
  4. -no-trunc 显示完全ID
  5. -q 唯一ID

08.使用run创建容器

  1. docker run <选项><镜像名称><要运行的文件>
  2. docker run -dti -p 80:80 -v /root/data:/data hello:1.0 --name hello-nginx
  3. docker run -d -p 8000:8000 --restart=always --name ngng -v /data/registry:/var/lib/registry registry:2
  4. 后台运行容器 容器端口:宿主机端口 容器异常重新启动 启动容器名称 位置映射、宿主机位置:容器位置 镜像名称或者ID
  5. -d 后台运行
  6. -i(interactive)、-t(Pseudo-tty)运行Bash shell中进行输入输出
  7. --name 指定容器名称,若不指定则自动生成
  8. -p 主机端口与容器端口连接,并暴露到外部
  9. -v 主机/root/data目录连接到容器的/data目录

09.查看容器列表

  1. docker ps
  2. -a 显示所有的容器

10.使用start命令启动容器

  1. docker start <容器名称> 或 容器ID
  2. docker start hello

11.重启容器

  1. docker restart <容器名称> 或 容器ID
  2. docker restart hello

12.使用attach命令连接容器

  1. docker attach <容器名称> 或 容器ID
  2. docker attach hello(NAMES)
  3. 注意:
  4. 在Bash shell中输入 Ctrl + D 或者 exit,表示停止并退出docker容器。
  5. 若依次输入Ctrl + P、Ctrl + Q,则不会终止容器而只是推出。

13.使用exec命令从外部运行容器内的命令

  1. docker exec <容器名称><命令><形式参数>
  2. docker exec -ti 容器ID
  3. docker exec registry ip add

14.停止容器

  1. docker stop <容器名称> 或 容器ID
  2. docker ps
  3. docker stop hello

15.删除容器

  1. docker rm <容器名称> 或 容器ID
  2. docker rm hello
  3. docker ps -a

16.删除镜像

  1. docker rmi <镜像名称>:<标签> 或 容器ID
  2. docker rmi hello
  3. -f 强制删除
  4. --no-trunc 删除没有标签的
  5. # 删除所有镜像
  6. docker rmi $(docker images -qa)

17.使用build命令创建镜像

  1. docker build <选项><Dockerfile路径>
  2. docker build --tag hello:1.0

18.使用cp复制文件

docker cp <容器名称>:<路径> <主机路径>
docker cp 2e52e426f849:/etc/hosts ./
docker cp fervent_lumiere:/etc/host.conf /opt/

19.使用history命令查看镜像历史

  1. docker history <镜像名称>:<标签> 或 容器ID
  2. docker history hello:1.0
  3. docker history tobegit3hub/seagull:latest

20.从容器的修改中创建镜像 commit

  1. docker commit <选项> <容器名称> <镜像名称>:<标签>
  2. docker commit -a "chengfeng <chengfeng56@qq.com>" -m "add hello.txt" fervent_lumiere tobegit3hub/seagull:latest

21.使用diff命令检查容器文件的修改

  1. docker diff <容器名称> 或 容器ID
  2. docker diff hello-nginx
  3. A 为添加的文件
  4. C 为修改的文件
  5. D 为删除的文件

22.命令查看inspect详细信息

  1. docker inspect <镜像或者容器名称>
  2. docker inspect hello-nginx

23.拉取镜像到本地

  1. docker tag <镜像名称>:<标签> <Docker registry URL>/<镜像名称>:<标签>
  2. docker tag hello:1.0 localhost:5000/hello:1.0
  3. docker pull registry:latest
  4. docker run -d -p 5000:5000 --name hello-registry -v /tmp/registry:/tmp/registry registry
  5. 运行后,镜像文件存储到主机的/tmp/registry目录。

24.推送镜像

  1. docker push <Docker registry URL>/<镜像名称>:<标签>
  2. docker push localhost:5000/hello:1.0

25.删除标签

  1. docker rmi <Docker registry URL>/<镜像名称>:<标签>
  2. docker rmi dev.dockcloud.cn/busybox:0.1

26.查看日志

docker logs <容器名称或ID>

27.查看运行状态

docker stats <容器名称或ID>

28.查看top

docker top <容器名称或ID>

29.查看映射端口

docker port <容器名称或ID>

30.更新容器信息

docker update <容器名称或ID>

31.保存容器成tar文件

docker export <容器名称或ID>

32.将tar文件导入到镜像列表

docker import <容器名称或ID>

33.把容器保存成镜像

  1. docker commit 运行中docker ID
  2. -a 添加作者
  3. -m 描述

34.将镜像保存成tar文件

  1. docker save 镜像 ID
  2. # 保存镜像id
  3. docker tag 56d3dc08212d registry.chinadaas.com/pubilc/elasticsearch:6.3.0
  4. # 保存标签
  5. docker save -o elastic.tar.gz registry.chinadaas.com/pubilc/elasticsearch:6.3.0

35.加载tar镜像文件

docker load 镜像 ID

36.外挂卷 volumes

  1. docker run -dti -v /web-data:/tmp:ro --name data-container app
  2. docker run -dti --volumes-from data-container --name web-container apps
  3. docker run -dti --volumes-from data-container --name web2-container apps
  4. # -v 宿主机目录:容器目录

37.容器卷管理

  1. 容器卷 主机卷
  2. docker镜像
  3. 通过docker build -t . 执行 dockerfile文件制作
  4. FROM centos:7
  5. RUN yum install -y epel-release && \
  6. yum install -y nginx && \
  7. yum clean all
  8. EXPOSE 80 443
  9. CMD ["nginx", "-g", "daemon off;"]
  10. 容器卷
  11. FROM centos:7
  12. RUN yum install -y epel-release && \
  13. yum install -y nginx && \
  14. yum clean all
  15. EXPOSE 80 443
  16. VOLUME ["/usr/share/nginx/html"]
  17. CMD ["nginx", "-g", "daemon off;"]
  18. 删除带容器卷的容器
  19. docker rm -f -v 容器ID

38.一次性删除所有的容器

docker rm $(docker ps -q -a) 

39.一次性删除所有的镜像

docker rmi $(docker images -q) 

40.删除停止的容器

docker rm $(docker ps -a -q -f status=exited)

41.删除没有标签的镜像

docker rmi -f $(docker images |grep "<none>" | awk "{print \$3}")

42.配置docker-enter管理docker容器

  1. 在环境变量内添加
  2. cat >> /root/.bashrc << EOF
  3. # set docker-enter
  4. alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'"
  5. alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'"
  6. function docker-enter() {
  7. if cpid=`docker-pid $1`;then
  8. sudo nsenter --target $cpid --mount --uts --ipc --net --pid
  9. fi
  10. }
  11. EOF
  12. source /root/.bashrc

43.主机卷

  1. docker run -dti -p 80:80 --name app -v /web-data:/tmp app
  2. docker run -dit -p 8080:80 --name apps -v /web-data:/tmp apps

44.备份数据

docker run --rm --volumes-from dbdata -v $(pwd):/backup centos tar cvf /backup/backup.tar /dbdata

45.数据恢复

docker run --rm --volumes-from dbdata2 -v $(pwd):/backup centos bash -c "cd /dbdata && tar xvf  /backup/backup.tar --strip 1"

46.container-none网络模式

docker run -dit --name busybox1 busybox:latest
docker run -dti --name busybox2 --net=container:busybox1 busybox sh

47. 连接容器

docker run -dti --name db mongo
docker run -dit --name web -p 80:80 --link db:db nginx

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/526978?site
推荐阅读
相关标签
  

闽ICP备14008679号