Docker 命令

基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# docker run
run:
-v 本地/服务器 对应的本地资源/服务器资源地址
-i 以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 设置容器后台一直运行
-p 8080:80 对应本地端口:服务器端口
—name 设置容器别名

# 查看服务器IP
docker-machine ip default

# 登录
docker login

docker image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 镜像列表
docker images
# 删除镜像
docker rmi id
# 删除 none 镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
# 删除所有镜像
docker rmi $(docker images -q)
# 搜索镜像
docker search 镜像ID或者镜像名称
# 拉取镜像, tag 版本
docker pull image:[tag]
# 直接从镜像加速地址进行拉取
docker pull registry.docker-cn.com/myname/myrepo:mytag
# 使用当前目录的 Dockerfile 创建镜像
docker build -t [username]/[repository]:[tag] .
# 推送镜像到仓库
docker push [OPTIONS] [username]/[repository]:[tag]
# 从容器创建一个新的镜像
docker commit -a "作者名称" -m "说明" 容器名称或ID 打包的镜像名称:标签
# OPTIONS说明:
-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停

docker container

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 容器列表
docker ps -a
# 停止运行容器
docker stop id/name
# 重启容器
docker restart id/name
# 删除容器
docker rm id/name
# 删除所有容器
docker rm $(docker ps -qa)
# 复制文件
docker cp id:服务器资源路径 本地资源路径
# 复制容器内的文件至当前文件夹
docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > httpd.conf
# 查看容器完整的command
docker ps -a --no-trunc

docker network

1
2
3
4
5
6
7
8
# 查看网络列表
docker network ls
# 创建自定义网络
docker network create --subnet=172.18.0.0/16 testNet
# 查看容器IP
docker inspect 容器ID grep | "IPAddress"
# 容器运行时指定IP(需先创建自定义网络)
docker run --net testNet --ip 172.18.0.1 httpd:2.4

docker-compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
services:
php:
# command 运行多条命令
command:
- /bin/bash
- -c
- |
composer --version
php-fpm
# 内存和CPU限制
deploy:
resources:
limits:
# cpu 限制不超过70%
cpus: '0.70'
memory: 12288M

# 启动和停止
docker-compose --compatibility up -d
docker-compose --compatibility stop
# 由于做了资源限制,并且没有使用swarm,所以要加上--compatibility参数,不然会报错
WARNING: Some services (web) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use docker stack deploy to deploy to a swarm.
0%