Docker
Docker安装
准备工作
第一步:准备CentOS,以CentOS7为例进行安装。
第二步:基于vmware打开CentOS
第三步:克隆CentOS(选择链接克隆-更省空间),命名为CentOS7964-docker
开启虚拟机系统
第一步:启动虚拟机,默认账号密码为root/root
第二步:打开终端,通过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工具链接虚拟机系统
卸载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
在线安装Docker
第一步:安装一组工具
sudo yum install -y yum-utils
【第一种】:使用国外官方源地址(比较慢)第二步:设置 yum 仓库地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
【第二种】:选择国内的源地址( 阿里云源地址)
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步:更新 yum 缓存
sudo yum makecache fast #yum 是包管理器
第四步:安装新版 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
离线安装Docker
第一步:下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
第二步:下载离线安装工具
https://github.com/Jrohy/docker-install/
说明,将下载好的这个工具解压。
第三步:将下载好的资源放在一个目录,例如:
在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm或XShell工具直接上传到linux目录)
[root@centos7964 docker]# pwd
/root/setup/docker
[root@centos7964 docker]# ls -l
总用量 68132
-rw-r--r--. 1 root root 69637582 8月 4 13:04 docker-20.10.6.tgz
-rw-r--r--. 1 root root 114793 8月 4 13:04 docker.bash
-rwxr-xr-x. 1 root root 7546 8月 4 13:04 install.sh
[root@centos7964 docker]#
第四步:执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
第五:安装成功以后,检查安装状态
docker info
Docker服务基本操作
启动docker服务
systemctl start docker
查看docker状态
查看docker是否启动了,是否是运行状态.
systemctl status docker
设置docker开机自启
systemctl enable docker
禁用docker开机自启
systemctl disable docker
重新启动docker服务
systemctl restart docker
查看docker信息
docker info
查看docker info中具体key的信息
例如:
docker info | grep 'Docker Root Dir:'
停止docker服务
systemctl stop docker
docker镜像加速
由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
cd /etc/docker/
下面命令直接生成文件 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服务.
Docker镜像操作实践
镜像
Docker 镜像是一组静态磁盘文件,可以任意下载、复制、分发。从镜像可以运行启动容器(Docker的虚拟计算机)。
下载镜像
从镜像仓库 https://hub.docker.com
下载镜像:
语法:docker pull 镜像名
# 下载 redis 镜像, 默认下载 redis:latest
docker pull redis:5.0.12
查看下载的镜像文件
# 查看镜像列表
docker images
镜像的名称
镜像的名称由两部分组成:repository:tag,其中的 tag 一般用来表示版本,默认的 tag 是 latest,表示最近的版本。
镜像的名称相当于在镜像上贴的一个标签,在一个镜像上可以贴多个标签:
添加名称:
# 镜像可以起另一个名称,名称格式: repository:tag
# 默认的 tag 是 latest
docker tag redis:5.0.12 tedu/redis:v5012
# 查看镜像
# 可以看到同一个镜像(ID相同)可以有多个名称
docker images | grep redis
查看镜像详情
语法:docker inspect 镜像名或镜像id
docker inspect hello-world
查看镜像历史
一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,可以查看默认的启动命令
,例如:
docker history redis
docker history mariadb
docker history tomcat
ENTRYPOINT 和 CMD
这两项设置都是用来设置容器中运行的命令。
只设置 CMD 来执行 ls -a -l:
CMD ["ls", "-a", "-l"]
只设置 CMD 是常见的用法。
用 ENTRYPOINT 和 CMD 两个一起设置来执行 ls -a -l:
ENTRYPOINT ["ls"]
CMD ["-a", "-l"]
两项一起设置时,会把两项设置的内容连接起来作为一个完整的命令。
启动容器时覆盖 ENTRYPOINT
和 CMD
覆盖 CMD
:
以 tomcat 镜