- 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