文章目录
1. Docker架构
- 镜像(Image):Docker 镜像(Image),就相当于是 一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包 含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
- 容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容 器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心, 用来保存镜像
2. Docker安装与镜像加速
2.1 安装Docker
[root@node01 ~]# wget https://download.docker.com/linux/centos/docker-ce.repo
[root@node01 ~]# mv docker-ce.repo /etc/yum.repos.d/
[root@node01 ~]# yum -y install docker-ce
2.2 配置Docker镜像加速
默认情况下,docker镜像都是从 docker hub 上下载。因为下载太慢太慢,一般都会配置镜像加速器:
- docker cn(https://registry.docker-cn.com)
- USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
- 阿里云
- 网易云
- 腾讯云
加速器的配置文件为/etc/docker/daemon.json
,此文件默认不存在,需要我们手动创建并进行配置
[root@node01 ~]# systemctl start docker
[root@node01 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
[root@node01 ~]# systemctl restart docker
3. Docker基本用法
3.1 进程相关命令
启动docker服务
[root@node01 ~]# systemctl start docker
停止docker服务
[root@node01 ~]# systemctl stop docker
重启docker服务
[root@node01 ~]# systemctl restart docker
查看docker服务状态
[root@node01 ~]# systemctl status docker
设置开机启动docker服务
[root@node01 ~]# systemctl enable docker
3.2 镜像相关命令
查看镜像
[root@node01 ~]# docker images
[root@node01 ~]# docker images -q //查看所用镜像的id
搜索镜像
[root@node01 ~]# docker search httpd //httpd可以更换为你想搜索的镜像
拉取镜像
从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。
[root@node01 ~]# docker pull httpd //httpd可以更换为你想拉取的镜像
删除镜像
[root@node01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest a6ea92c35c43 3 weeks ago 166MB
[root@node01 ~]# docker rmi a6ea92c35c43 //最后使用想要删除镜像的id
//删除本地所有镜像
[root@node01 ~]# docker rmi `docker images -q`
3.3 容器相关命令
查看容器
//查看正在运行的容器
[root@node01 ~]# docker ps
//查看所有容器
[root@node01 ~]# docker ps -a
创建容器
[root@node01 ~]# docker create httpd //后面的httpd可以改为任意镜像名
创建并启动容器
[root@node01 ~]# docker run -d httpd
参数:
-i 保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-d 以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
--name 为创建的容器命名。
进入容器
[root@node01 ~]# docker exec -it ffdd4d8c8237 /bin/bash
root@ffdd4d8c8237:/#
//退出容器,容器不会关闭
停止容器
[root@node01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffdd4d8c8237 nginx "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 80/tcp elegant_pike
[root@node01 ~]# docker stop ffdd4d8c8237
启动容器
[root@node01 ~]# docker start ffdd4d8c8237
杀死一个或多个正在运行的容器
[root@node01 ~]# docker kill 4cda23751ce8
删除容器
如果容器是运行状态则删除失败,需要停止容器或使用-f选项才能删除
[root@node01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffdd4d8c8237 nginx "/docker-entrypoint.…" 7 minutes ago Up About a minute 80/tcp elegant_pike
[root@node01 ~]# docker rm -f ffdd4d8c8237
获取容器日志
[root@node01 ~]# docker logs 4cda23751ce8
查看容器信息
[root@node01 ~]# docker inspect 555f7368aec1