fairycat

Created:
Updated:

Docker 命令记录

获取镜像

docker pull name/name:tag
docker pull ubuntu

提交镜像

docker push name/name:tag

从镜像启动容器

  • --name: 指定名称
  • -d: 后台运行
  • -i: 交互式操作
  • -t: 终端
docker run -it ubuntu /bin/bash
docker run -itd --name ubuntu-test ubuntu /bin/bash

启动容器

docker ps -a
docker start xxxxxx

随系统启动

docker run --restart=on-failure:10|always xxx
docker update --restart=on-failure:10|always ID

绑定端口

-p 80:80

停止容器

docker stop ID

重启容器

docker restart ID

进入容器

attach 退出时导致容器停止

docker attach ID

推荐 exec

docker exec -it ID /bin/bash

导出容器

docker export ID > xxx.tar

导入容器

cat xxx.tar | docker import - name:v1

删除容器

docker rm -f ID
docker rm $(docker ps -a -q)

建立私有网络

docker network create --internal --gateway 172.18.0.1 --subnet 172.18.0.0/16 bridge-internal

建立默认绑定 localhost 的网络

docker network create --opt com.docker.network.bridge.host_binding_ipv4=127.0.0.1 bridge-local

建立允许访问的网络

docker network create bridge-net

建立容器指定网络

docker run -d -p 8080:8080 --network bridge-internal --name server_test -v /var/server_test/data:/usr/local/server_test/data xxx/xxx

导入导出 sql

导出时,不加 -i 交互式以免 mysqldump 之外的内容被输出到文件

docker exec container sh -c 'exec mysqldump -uroot -pxxx' > xxx.sql
docker exec -i container sh -c 'exec mysql -uroot -pxxx' < xxx.sql

导入 mongodb

run --mount BIND_DIR --entrypoint /usr/bin/mongorestore -h x.x.x.x -d dbname BIND_DIR

CMD & EntryPoint

  • CMD ["executable", "param1", "param2"] // exec 模式
  • CMD ["param1", "param2"] // EntryPoint 参数
  • CMD command param1 param2 // shell 模式
  • ENTRYPOINT ["executable", "param1", "param2"] // exec 模式
  • ENTRYPOINT command param1 param2 // shell 模式
No ENTRYPOINT ENTRYPOINT exec_entry p1_entry ENTRYPOINT ["exec_entry", "p1_entry"]
No CMD error /bin/sh -c exec_entry p1_entry exec_entry p1_entry
CMD ["exec_cmd", "p1_cmd"] exec_cmd p1_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry exec_cmd p1_cmd
CMD exec_cmd p1_cmd /bin/sh -c exec_cmd p1_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry /bin/sh -c exec_cmd p1_cmd

Shell 模式 ENTRYPOINT 使用 exec 运行,以免创建 PID 为 1 的 sh 进程

FROM ubuntu
ENTRYPOINT exec top -b

评论

Name

Email

Website

Subject