1.Docker安装实践
1.1 准备工作
第一步:准备CentOS,本次以CentOS7为例进行安装。
第二步:基于vmvare打开CentOS:选择中间的打开虚拟机选项,选中本地的虚拟机文件打开
第三步:克隆CentOS(选择链接克隆-更省空间),命名为CentOS7964-docker
1.2 开启虚拟机系统
第一步:启动虚拟机,选择root账号,默认密码为root;用户名为centos的账号,密码也为centos
第二步:在系统中右键,打开终端,通过ifconfig指令检查网络,
[root@centos7964 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.227.129 netmask 255.255.255.0 broadcast 192.168.227.255
inet6 fe80::20c:29ff:fee9:918a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e9:91:8a txqueuelen 1000 (Ethernet)
RX packets 287398 bytes 419668874 (400.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 127375 bytes 8442701 (8.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
....
第三步:通过MobaXterm工具链接虚拟机系统
1.3 卸载Docker
假如已经有docker,可通过执行如下指令卸载Docker(一般只针对于线上安装情况),例如:
sudo yum remove docker-ce \
docker-ce-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.4 在线安装Docker
第一步:安装一组工具
sudo yum install -y yum-utils
第二步:设置 yum 仓库地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
第三步:更新 yum 缓存
sudo yum makecache fast #yum 是包管理器
第四步:安装新版 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
1.5 离线安装Docker
推荐使用课前资料中已经下载好的资源(docker-setup.zip),也可以按如下步骤自己下载,然后将资源放到一个目录再安装,例如:
第一步:下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
说明,也可以从https://download.docker.com/linux/static/stable/
网址下载指定版本
第二步:下载离线安装工具
https://github.com/Jrohy/docker-install/
说明,将下载好的这个工具解压。
第三步:将下载好的资源放在一个目录,例如:
第四步:在linux环境下,创建/root/setup/docker
目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录),例如
第五步:执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
安装成功后,会出现如下信息:
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker 20.10.6 install success!
第六步:安装成功以后,检查安装状态
docker info
2. Docker服务基本操作
2.1 启动docker服务
systemctl start docker
2.2查看Docker状态
查看docker是否启动了,是否是运行状态.
systemctl status docker
例如:
2.3设置Docker开机自启
systemctl enable docker
2.4禁用Docker开机自启
systemctl disable docker
2.5重新启动Docker服务
systemctl restart docker
2.6查看Docker信息
docker info
查看docker info中具体key的信息,例如:
docker info | grep 'Docker Root Dir:'
2.7停止docker服务
systemctl stop docker
2.8Docker镜像加速
由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
说明:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务.
3. Docker镜像操作实践
3.1 下载镜像
语法:docker pull 镜像名
案例:
docker pull hello-world
3.2浏览镜像文件
docker images
3.3查看镜像详情
语法:docker inspect 镜像名或镜像id
docker inspect hello-world
3.4查看镜像历史
一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:
docker history hello-world
3.5导出镜像文件
镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用
docker save hello-world | gzip > hello-world.tar.gz
3.6删除镜像文件
语法:docker image rm 镜像名或镜像id
docker image rm hello-world
3.7导入镜像操作
镜像导入(要在hello-world.tar.gz 文件所在目录下执行)
docker load < hello-world.tar.gz
3.8运行镜像文件
基于镜像,启动容器运行。
docker run hello-world
4.Docker 容器操作实践
本次以CentOS镜像为例,讲解容器的基本操作。
4.1 下载镜像(Image)
通过docker pull指令下载CentOS镜像,例如:
docker pull centos:7
说明,官方镜像仓库地址为https://hub.docker.com/
下载完以后,查看centos7镜像文件。
docker images
4.2创建并启动容器(Container)
基本语法解析:
docker run -it xxxx bash
其中:
- xxxx - 镜像名, 或 image id 的前几位,
-it
这是两个参数(-i表示交互式操作, -t 表示终端)- bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)。
案例:通过docker启动运行 centos7镜像
docker run -it centos:7 bash
4.3查看Docker中的容器(Container)
查看docker运行中的容器(要在宿主机执行docker指令)
docker ps
说明,假如在容器中执行docker指令会出现如下问题,例如:
使用exit
指令退出当前容器后,查看docker运行中的所有容器
docker ps -a
其中,-a表示全部(all)。
4.4查看容器日志(logs)信息
查看容器启动运行日志时,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。
docker container logs 802 #802为自己的容器id(一般写前三位即可)
说明,查看容器的运行日志时,容器应该处于一种运行状态.
4.5停止(stop)或重启(Restart)容器(Container)
停止运行的容器,代码如下:
docker container stop 802 #802为容器自己的id
重新启动容器,代码如下:
docker container restart 802 #802位容器自己的id
4.6进入(exec)指定容器(Container)
当容器处于运行状态,要进入容器,可以使用 docker exec 命令,例如:
docker exec -it 802 bash #802为容器id
说明,假如容器处于一种非运行状态,此时你执行docker exec进入容器会出现如下问题:
4.7从容器(Container)中退出(exit)
假如从宿主机进入了启动的容器,退出容器需要使用exit指令,例如:
exit
4.8删除(rm)容器(Container)
假如容器不用了,可执行删除操作,例如:
docker container rm 802 #802为容器id
说明,假如容器正在运行执行删除,会出现如下问题,例如:
其中,如果删除运行中的容器,需要添加 -f 参数执行强制删除,例如:
docker container rm -f 802 #802为容器id
清理所有处于终止状态容器,例如:
docker container prune
说明,执行完这个指令以后,可以通过docker ps -a 再查看容器,看看是否有删除.