背景
当下,docker技术已成为开发者常用的技术栈。不管是开发过程中需要应对的各种复杂多变的开发环境的搭建,还是生产部署环节需要的自动化运维,都离不开docker,本文简单介绍相关命令的含义,用作平时查询使用。
1. docker命令示意图
2. docker【pull | images | run | ps | exec | commit | rm】
- docker pull nginx //拉取最新版本nginx
- docker pull nginx:latest //拉取最新版本nginx
- docker pull nginx:1.13 //拉取nginx1.13版本
- docker images //列出本机所有镜像
- docker run -d -p 8080:80 nginx //启动一个镜像为nginx的容器 将容器nginx80端口映射到本地8080端口
-d 指nginx以守护进程来运行,-p 指定端口映射,nginx 指定镜像名
- docker ps //列出所有正在运行的容器
- docker run -d -p 8081:80 nginx //启动一个镜像为nginx的容器 将容器nginx80端口映射到本地8081端口
- docker exec -it 容器ID bash //进入容器并修改相应的文件
cd /usr/share/nginx/html/
vim index.html
exit
- docker commit 容器ID m1 //将 容器ID 保存为m1名称镜像;
- docker images // 列出所有镜像
- docker rm -f 容器ID //强制删除容器;
- docker run -d -p 8082:80 m1 //启动一个镜像为m1的容器 将本机90端口映射到容器80端口
3. Dockerfile的使用 【build】
- cd ~ && vim Dockerfile
From nginx #基于nginx镜像
ADD ./ /usr/share/nginx/html/ #把当前目录文件拷贝到容器指定目录 - 在当前目录~创建一个文件index.html 文件内容waibudewenjian
- docker build -t m2 . // 在当前目录寻找Dockerfile并构建为镜像m2
docker build -t bjc/demo:latest --rm .
解析:
-t bjc/demo:latest,为构建的镜像标记名称,即镜像名为:bjc/demo,打标为latest;
--rm,整个构建过程成功后删除中间环节的容器;
.,单独的点,意思为根据当前目录下的Dockerfile文件生成镜像
- docker run -d -p 8083:80 m2
- docker ps
4. docker tar文件 【rm | rmi | save | load】
- docker images
- docker save m2 > 1.tar
- docker rm -f 容器ID;//删除容器
- docker rmi m2; //删除镜像
- docker images
- docker load < 1.tar
- docker images
5. docker 升级用法 【inspect】
- docker run -d -p 8084:80 --name mynginx -v
pwd
:/usr/share/nginx/html nginx:1.13
映射本地目录到容器目录
--name mynginx 容器运行起来的名称
`pwd`:/usr/share/nginx/html 将当前目录映射到容器指定目录
/home/wangyao/html:/usr/share/nginx/html
nginx:1.13 会拉取nginx1.13版本镜像
- docker inspect 9342 | grep Mounts -A 20 //查看nginx容器的挂在目录
6. docker 容器其他常用命令
docker stats #查看docker状态 CPU MEM
docker ps #查看当前正在运行的容器
docker ps -a #查看所有运行过的容器
docker restart containerID #重启容器
docker start containerID #启动容器
docker stop containerID #停止容器
进入一个启动的容器:
- docker attach 容器ID 刚方法进入之后,exit退出就会导致容器stop
- docker exec -it containerID /bin/bash 这个命令exit退出,ok容器还在运行
复制文件到容器:
- docker cp hello.html daa0cd150cce://usr/share/nginx/html #在host和container之间拷贝文件
一些启动参数:
- 后台运行容器:
-d
- 容器内外端口映射:
-p 内部端口号:外部端口号
- 目录映射:
-v 'dir name' : <dir>
- 指定映像版本:
<name>:<ver>
重启容器:
- 在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
- docker run --restart=always
- 如果已经启动了则可以使用如下命令:
- docker update --restart=always
参考
- docker入门教程:阮一峰
以上。