4 部署Docker
4.1 基础环境配置
1G内存,单核,64位CPU,linux 内核3.10+,支持namespaces和cgroups
Docker虚机IP:10.0.0.136 系统:centos-7 主机名:docker-136
物理机IP:10.0.0.2
通过dhcp分配地址给虚机,虚机通过nat访问外网,拓扑图如下:
4.2 安装阿里yum源
1、替换官方centos-7的源为阿里的centos-7和对应的扩展包epel包的源。
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2、安装阿里的docker源
curl https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
/etc/yum.repos.d/目录下存在docker-ce.repo即安装成功
4.3 安装docker-ce
yum install -y docker-ce
4.4 配置镜像加速(阿里云)
https://cr.console.aliyun.com/cn-chengdu/instances/mirrors
注册阿里云账号,选择镜像中心-镜像加速器-复制加速器地址。
然后执行如下操作:
#创建用户docker自定义配置文件目录
mkdir -p /etc/docker
#配置加速器地址
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://0dlqw717.mirror.aliyuncs.com"]
}
4.5 启动Docker服务
systemctl daemon-reload #重新加载用户自定义的配置文件
systemctl start docker #启动服务
systemctl enable docker #开机自启动
5、Docker常用命令
5.1 全局命令
docker version 查看版本
docker info 查看更加详细的信息
docker search 在hub里搜索image
举例:docker search nginx
可以看到上图有NAME叫nginx 这是顶级仓库,官方镜像
后面的有XX/nginx-proxy之类的就是非顶级仓库,即用户自定义仓库
5.2 Docker image命令
①、docker image pull 在hub里下载镜像到本地
举例:docker image pull nginx:1.19-alpine
仓库名 tag
docker image pull busybox #不加标签默认情况下拉取latest的版本
docker image pull busybox:latest
②、查看下载的镜像
docker image ls
可以看到image是分层拉取的,为什么分层呢,后面章节会讲到。
③、删除本地的镜像
docker image remove
举例:docker image rm 镜像ID #镜像ID实际上是SHA256的HASH值
④、查看image的详细配置文件
docker image inspect 镜像ID
⑤、给镜像打上tag
docker image tag 镜像id 目标镜像tag
举例:docker imag tag 镜像ID luoaye/mytest:v0.1-1
⑥、推送本地镜像到docker hub
docker image push 镜像名 luoaye/mytest:v0.1-1
5.3 Docker container命令
①、docker container create 创建容器
举例:docker container create --name mybox1 -it busybox:latest
容器名 交互式接口 仓库加tag
-i 表示交互式
-t 表示分配tty终端
②、docker container ls 显示容器(无法查看未运行的容器)
-a 显示所有容器(包括未运行的容器)
③、docker container start 启动容器
举例:docker container start -ai mybox1
④、docker container stop 停止容器
举例:新开1个tty然后,查询mybox1还是运行中,stop之后,查询已经停止运行。
⑤、docker container kill 强制停止容器
和stop的作用一样,但是更具有强制性。
⑥、docker container run 运行容器
run命令可以同时完成create和start的功能
举例:
docker container run --name mybox2 -it --rm busybox
--rm 表示退出容器时同时删除容器
docker container run --name myweb1 -d nginx:1.19-alpine
-d 表示后台运行,不要在前端显示
其它参数:-h xx或者--hostname XX 为容器指定主机名
--dns 为容器指定dns
--add-host XX:x.x.x.x 指定主机名和ip地址的解析
⑦、docker container inspect 容器名
可以查看容器的详细配置信息
举例:docker container inspect mybox2
⑧、docker container pause/unpase 暂停/取消暂停容器
⑨、docker container exec 容器名 shell命令
可以在主机上通过上述命令在容器里执行命令
举例:
docker container exec mybox1 /bin/ls
docker container exec -it myweb1 /bin/sh
进入1个正在运行的容器的bash界面,左边就是进入容器的shell交互界面
⑩、docker container logs 容器名
查看容器的log
举例:docker container logs myweb1
⑩①、docker contianer top 容器名/容器id
查看容器当前运行的进程
举例:docker container top myweb1
下一章:开始学习Docker镜像