Docker常用操作(CentOS 7)
1. 配置加速器(网易云)
1.1. 修改配置
修改文件:/etc/docker/daemon.json
{"registry-mirrors":["http://hub-mirror.c.163.com"]} |
配置好后需要重启
注意:这里使用CentOS7,CentOS6的配置方法不同。没有文件则新建。
1.2. 重启docker
$ systemctl daemon-reload $ systemctl restart docker |
2. 基础操作
2.1. 查询docker信息
docker info |
2.2. 查看docker版本
$ docker --version |
2.3. 查看命令帮助
$ docker --help $ man docker-images #查看镜像命令说明 |
3. 镜像操作
3.1. 列出所有镜像
$ docker images $ docker images -a #列出所有镜像 $ docker images -aq #列出所有镜像ID |
3.2. 镜像查询
根据镜像名查询仓库中所有镜像
# docker search [OPTIONS] 镜像名 # docker search tomcat # docker search -s 30 tomcat #查找30颗星以上的镜像 |
3.3. Docker仓库地址
https://hub.docker.com/ |
3.4. 安装镜像
$ docker pull nginx:latest |
3.5. 删除镜像
$ docker rmi -f 3fa112fd3642 #镜像ID |
3.6. 保存镜像
将自定义的一个容器保存成一个镜像
docker commit -m="delete docs" -a="gongxr" e218edb10161 gxr/tomcat:1.0 |
各个参数说明:
l -m: 提交的描述信息
l -a: 指定镜像作者
l e218edb10161:容器ID
l gxr/tomcat:1.0:指定要创建的镜像名和版本号
4. 容器操作
4.1. 查看容器
$ docker ps -a # 查看所有容器 $ docker ps # 查看正在运行的容器 |
4.2. 新建并运行容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] $ docker run -d --name nginx-test -p 18080:80 nginx |
参数说明:
l --name nginx-test:容器名称。
l -p 18080:80: 端口进行映射,将本地 18080 端口映射到容器内部的 80 端口。
l -d: 设置容器后台运行。
l -it: 交互式登录
l nginx:镜像名
docker run -it centos # 新建并运行容器,交互式登录,打开伪终端 docker run -it --name centos_1 centos # 重命名为centos_1 docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done" |
4.3. 启停容器
docker start a0ea4b82de57 #启动,容器ID docker restart a0ea4b82de57 #重启 docker stop cd47805da0f6 #停止 docker kill cd47805da0f6 #强制停止 |
4.4. 进入容器(正在运行)
docker attach 容器ID #进入容器并打开交互终端 docker exec -it 容器ID /bin/bash #进入容器并打开交互终端 |
Attach:直接进入容器启动命令的终端,不会启动新的进程
Exec:在容器中打开新的终端,并可以启动新的进程
4.5. 执行命令
直接执行容器内命令并返回结果,但不进入终端,默认使用bash
docker exec 容器ID 执行命令 docker exec cd47805da0f6 ls -l |
4.6. 退出容器
$ exit 关闭并退出 Ctrl+Q+P 退出但不关闭 |
4.7. 删除容器
$ docker rm 8f3c5e5f4327 #容器ID $ docker rm -f 8f3c5e5f4327 #强制删除 $ docker rm -f $(docker ps -qa) #删除所有容器 $docker ps -qa | xargs docker rm #删除所有容器 |
4.8. 查看容器日志
docker logs -t -f --tail 10 0721dba03b7e |
l -t 是加入时间戳
l -f 跟随最新的日志打印
l --tail 数字 显示最后多少条
4.9. 查看容器内运行的进程
docker top 0721dba03b7e |
4.10. 查看容器详细信息
docker inspect 0721dba03b7e |
4.11. 容器文件拷贝
把文件从容器拷贝到宿主机中
docker cp 容器ID:容器路径 本地路径 docker cp 8a06155fa70b:/usr/local/tomcat/test.txt /home/root |
把文件从宿主机拷贝到容器中
docker cp 本地路径 容器ID:容器路径 docker cp /home/root/test.txt 8a06155fa70b:/usr/local/tomcat |
4.12. 容器安装vim
$ apt-get update $ apt-get install -y vim |
4.13. 容器导出
$ docker export cb3056931dda > nginx2.tar |
4.14. 容器导入
$ cat nginx2.tar | docker import - nginx2:v1.0 |
5. 容器数据卷
数据卷用于容器的持久化、继承和数据共享。
5.1. 添加数据卷
docker run -it -v /宿主机目录:/容器内目录 镜像名 /bin/bash |
docker run -it -v /root/hostVol:/usr/local/containerVol centos /bin/bash #默认读写 |
5.2. 数据卷权限
设置只读权限,默认可读写
docker run -it -v /root/hostVol:/usr/local/containerVol:ro centos /bin/bash |
5.3. 查看容器信息
查看容器的数据卷挂载信息如目录、权限等
docker inspect 容器ID |
5.4. 数据卷容器
命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。
--volumes-from:容器间数据卷传递共享。
docker run -it --name 容器名 --volumes-from 共享容器名 镜像名 |
docker run -it --name dc2 --volumes-from dc1 centos |