搭建Docker环境
1.安装配置Docker
1.1.首先安装 Docker 必要依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
操作示例:
[lvm2t@VM_1_64_centos ~]# yum install -y yum-utils device-mapper-persistent-data
Loaded plugins: fastestmirror, langpacks
......
Complete!
[root@VM_1_64_centos ~]#
1.1.1.由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
操作示例:
[root@VM_1_64_centos ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@VM_1_64_centos ~]#
1.1.2.用 yum 安装 Docker:
yum install -y docker-ce
操作示例:
[root@VM_1_64_centos ~]# yum install -y docker-ce
Loaded plugins: fastestmirror, langpacks
docker-ce-stable
......
Complete!
[root@VM_1_64_centos ~]#
1.1.3.直接yum安装,安装成功后查看版本:
docker -v
操作示例:
[root@VM_1_64_centos ~]# docker -v
Docker version 18.09.5, build e8ff056
[root@VM_1_64_centos ~]#
1.1.4.启动docker:
service docker start
操作示例:
[root@VM_1_64_centos ~]# service docker start
Redirecting to /bin/systemctl start docker.service
[root@VM_1_64_centos ~]#
1.1.5.设置开机启动:
chkconfig docker on
操作示例:
[root@VM_1_64_centos ~]# chkconfig docker on
Note: Forwarding request to 'systemctl enable docker.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@VM_1_64_centos ~]#
1.2.1.配置Docker:
因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub,依次执行以下命令;
echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
systemctl daemon-reload
service docker restart
操作示例:
[root@VM_1_64_centos ~]# echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
[root@VM_1_64_centos ~]# systemctl daemon-reload
[root@VM_1_64_centos ~]# service docker restart
Redirecting to /bin/systemctl restart docker.service
[root@VM_1_64_centos ~]#
2.Docker简单操作:
2.1.下载镜像:
2.1.1.下载一个官方的 CentOS 镜像到本地:
docker pull centos
操作示例:
[root@VM_1_64_centos ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8ba884070f61: Pull complete
Digest: sha256:8d487d68857f5bc9595793279b33d082b03713341ddec91054382641d14db861
Status: Downloaded newer image for centos:latest
[root@VM_1_64_centos ~]#
2.1.2.下载好的镜像就会出现在镜像列表里:
docker images
操作示例:
[root@VM_1_64_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f 4 weeks ago 202MB
[root@VM_1_64_centos ~]#
2.2.运行容器:
这时我们可以在刚才下载的 CentOS 镜像生成的容器内操作了,生成一个 CentOS 镜像为模板的容器;
docker run -it centos /bin/bash
这个时候可以看到命令行的前端已经变成了 [root@(一串 hash Id)] 的形式, 这说明我们已经成功进入了 CentOS 容器。在容器内执行任意命令, 不会影响到宿主机, 如下:
mkdir -p /data/simple_docker
可以看到 /data 目录下已经创建成功了 simple_docker 文件夹:
ls /data
退出容器
exit
查看宿主机的 /data 目录, 并没有 simple_docker 文件夹, 说明容器内的操作不会影响到宿主机:
ls /data
操作示例:
[root@VM_1_64_centos ~]# docker run -it centos /bin/bash
[root@8a7a19952e33 /]# mkdir -p /data/simple_docker
[root@8a7a19952e33 /]# ls /data
simple_docker
[root@8a7a19952e33 /]# exit
exit
[root@VM_1_64_centos ~]# ls /data
[root@VM_1_64_centos ~]#
2.3.保存容器:
2.3.1.查看所有的容器信息, 能获取容器的id:
docker ps -a
操作示例:
[root@VM_1_64_centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a7a19952e33 centos "/bin/bash" 7 minutes ago Exited (0) 4 minutes ago boring_ptolemy
[root@VM_1_64_centos ~]#
2.3.2.然后执行如下命令,保存镜像:
请自行将 -m 后面的信息改成自己的容器的信息;
docker commit -m="备注" CONTAINER_ID IMAGE
操作示例:
[root@VM_1_64_centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a7a19952e33 centos "/bin/bash" 7 minutes ago Exited (0) 4 minutes ago boring_ptolemy
[root@VM_1_64_centos ~]# docker commit -m="测试容器保存" 8a7a19952e33 centos
sha256:909994a6135d7f3d8553786bc3908e2497b793b0efa33f860357610d4f64d748
[root@VM_1_64_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 909994a6135d 7 seconds ago 202MB
centos <none> 9f38484d220f 4 weeks ago 202MB
[root@VM_1_64_centos ~]#
通过操作示例我们可以看出,IMAGE ID为9f38484d220f的就是我们保存的镜像;