Docker常用操作(CentOS 7)

 

1. 配置加速器(网易云)

1.1. 修改配置

修改文件:/etc/docker/daemon.json

{"registry-mirrors":["http://hub-mirror.c.163.com"]}

配置好后需要重启

注意:这里使用CentOS7CentOS6的配置方法不同。没有文件则新建。

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

posted @ 2020-07-21 17:52  星瑞  阅读(371)  评论(2编辑  收藏  举报