- 1,Centos7安装docker
- 2,docker基础命令
- 3,docker架构
- 4,docker镜像操作
- 5,容器操作
Dcoker官网地址:https://www.docker.com/
2,docker基础命令- 查看docker运行状态
systemctl status docker
- 停止docker
systemctl stop docker
- 重启docker
systemctl restart docker
- 启动docker
systemctl start docker
- 设置为开机自动启动
systemctl enable docker
- 查看docker详细信息
docker info
- 查看docker版本
docker --version
- 查看docker命令帮助
docker --help3,docker架构
Docker uses a client-server architecture. The Docker client talks to the Docker daemon, whichdoes the heavy lifting of building, running, and distributing your Docker containers. The Dockerclient and daemon can run on the same system, or you can connect a Docker client to a remoteDocker daemon. The Docker client and daemon communicate using a REST API, over UNIXsockets or a network interface. (Docker使用客户端 - 服务器架构。 Docker客户端与Docker守护进程通信,后者负责构建,运行和分发Docker容器。 Docker客户端和守护程序可以在同一系统上运行,也可以将Docker客户端连接到远程Docker守护程序。 Docker客户端和守护程序使用REST API,通过UNIX套接字或网络接口进行通信。)
The Docker daemon (dockerd) listens for Docker API requests and manages Docker objects suchas images, containers, networks, and volumes. A daemon can also communicate with otherdaemons to manage Docker services. (Docker守护程序(dockerd)侦听Docker API请求并管理Docker对象,如图像,容器,网络和卷。 守护程序还可以与其他守护程序通信以管理Docker服务。)
-
docker client
The Docker client (docker) is the primary way that many Docker users interact with Docker.When you use commands such as docker run, the client sends these commands to dockerd,which carries them out. The docker command uses the Docker API. The Docker client cancommunicate with more than one daemon. (Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。 当您使用诸如docker run之类的命令时,客户端会将这些命令发送到dockerd,后者将其执行。 docker命令使用Docker API。 Docker客户端可以与多个守护进程通信。) -
docker registry
A Docker registry stores Docker images. Docker Hub is a public registry that anyone can use, andDocker is configured to look for images on Docker Hub by default. You can even run your ownprivate registry. If you use Docker Datacenter (DDC), it includes Docker Trusted Registry (DTR).When you use the docker pull or docker run commands, the required images are pulled fromyour configured registry. When you use the docker push command, your image is pushed toyour configured registry.(Docker注册表存储Docker镜像。 Docker Hub是任何人都可以使用的公共注册中心,Docker配置为默认在Docker Hub上查找图像。 您甚至可以运行自己的私人注册表。 如果您使用Docker Datacenter(DDC),它包括Docker Trusted Registry(DTR)。使用docker pull或dockerrun命令时,将从配置的注册表中提取所需的映像。 使用docker push命令时,图像将被推送到配置的注册表。)
Docker 镜像是容器的基础。镜像是一个有序集合,其中包含根文件系统更改和在容器运行时中使用的相应执行参数。镜像通常 包含堆叠在彼此之上的联合分层文件系统。镜像没有状态并且始终不会发生更改。 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
- 列出镜像
docker images
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下。
REPOSITORY:表示镜像的仓库源
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
- 拉取镜像
如果不指定版本,则拉取的是最新的
docker pull 镜像名称[:version]
Docker镜像首页,包括官方镜像和其它公开镜像。Docker Hub上最受欢迎的10大镜像(通过Dockerregistry API获取不了镜像被pull的个数,只能通过镜像的stars数量,来衡量镜像的流行度。毫无疑问,拥有最高stars数量的库都是官方库。国情的原因,国内下载 Docker HUB 官方的相关镜像比较慢,可以使用国内(docker.io)的一些镜像加速器,镜像保持和官方一致,关键是速度块,推荐使用。配置镜像加速器:
PS:配置镜像加速器(参考该网站具体的文档操作)
阿里云(先加入阿里云开发者平台:https://dev.aliyun.com)
- docker中国加速器(https://www.docker-cn.com)
- USTC加速器(https://lug.ustc.edu.cn/wiki/ ) 真正的公共服务(无需任何操作)
- daocloud、网易蜂巢加速器:略
步骤:
sudo vim /etc/docker/daemon.json
配置内容: { "registry-mirrors": ["https://p8bdqa3l.mirror.aliyuncs.com"] }
sudo systemctl daemon-reload
sudo systemctl restart docker
这里是选择的是阿里云的
- 查找镜像
docker search 镜像名称
NAME:镜像仓库源的名称
DEscriptION:镜像的描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否docker官方发布
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
- 删除镜像
# 删除一个镜像 docker rmi 镜像名称/id # 删除多个镜像 docker rmi 镜像名称1/id1 镜像名称2/id2 ... # 删除所有镜像 docker rmi docker images -q5,容器操作
docker run [options] image command [ARG...] options选项: -i、-t、-d、--name -i:交互式容器 -t:tty,终端(分配一个终端,操作容器) -d:后台运行,并且打印容器id --name:指定容器的名称(唯一,不能重复) Linux:根的进程:/bin/bash eg:创建的容器名称不能重复 docker run --name=u1 ubuntu docker run -i -t --name=u1 ubuntu /bin/bash docker run -i -t -d --name=u3 ubuntu /bin/bash #docker run -i -t -d --name=u3 ubuntu /bin/bash 简写方式如下 docker run -it --name u3 ubuntu /bin/bash
- 创建交互式容器
docker run -it --name c1 centos /bin/bash
容器创建好之后,会自动进入容器
- 创建守护式容器
docker run -itd --name c3 centos /bin/bash
守护式容器创建好后,不会进入到容器,会在后台运行程序
- 进入容器
#方式一:这种方式exit退出容器,容器不会停止 docker exec -it 容器名称/id /bin/bash #方式二:这种方式exit退出容器,容器停止 docker attach 容器名称/id
方式一
方式二
- 查看容器
#查看正在运行的容器 docker ps #查看运行过的容器(历史) docker ps -a #最后一次运行的容器 docker ps -l
- 启动容器
docker start 容器名称/id
- 停止容器
docker start 容器名称/id
- 查看容器/镜像部分信息
docker inspect -f='{{.NetworkSettings.IPAddress}}' 容器/镜像
-f:可通过--format代替
查看c3容器全部信息
docker inspect c3
查看c3容器部分信息(IP地址)
docker inspect -f='{{.NetworkSettings.IPAddress}}' c3
docker inspect --format='{{.NetworkSettings.IPAddress}}' c3
- 删除容器(不能删除正在运行的容器)
#删除一个容器 docker rm 容器名称/id #删除多个容器 docker rm 容器名称1/id1 容器名称2/id2 ... #删除所容器 docker rm `docker ps -a -q`
- 查看容器日志
docker logs 容器名称/id
- 文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
- 目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器添加 -v 参数 后边为 宿主机目录:容器目录
docker run -itd --name c2 -v /opt:/usr/local/myhtml centos /bin/bash
如果你共享的是多级的目录,可能会出现权限不足的提示
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --priviteged=true 来解决挂载的目录没有权限的问题
docker run -id --privileged=true --name=c4 -v /opt/:/usr/local/myhtml centos



