Docker 教程
- https://www.runoob.com/docker/docker-resources.html
- https://zixuephp.net/manual-docker-2136.html
- http://c.biancheng.net/view/3118.html
- http://www.dockerinfo.net/案例-10
5.1 部署docker
用于管理容器
5.2 YUM源
5.2.1 官方网址
www.docker.com
5.2.2 docker所使用开发语言
golang
5.2.3 YUM获取
docker-ce : https://docs.docker.com/engine/install/centos/ https://docs.docker.com/
先决条件
- OS需求
centos-extras
必须启用存储库。默认情况下启用此存储库,但如果已禁用它,则需要重新启用它.overlay2
建议使用存储驱动程序。
- OS需求
卸载旧版本(安装docker过的)
docker
或docker-engine
。如果安装了这些文件,请卸载它们以及相关的依赖项。
[root@localhost ~]# yum list | grep docker
cockpit-docker.x86_64 195.12-1.el7.centos extras
docker.x86_64 2:1.13.1-204.git0be3e21.el7 extras
docker-client.x86_64 2:1.13.1-204.git0be3e21.el7 extras
docker-client-latest.x86_64 1.13.1-58.git87f2fab.el7.centos
docker-common.x86_64 2:1.13.1-204.git0be3e21.el7 extras
docker-distribution.x86_64 2.6.2-2.git48294d9.el7 extras
docker-latest.x86_64 1.13.1-58.git87f2fab.el7.centos
docker-latest-logrotate.x86_64 1.13.1-58.git87f2fab.el7.centos
docker-latest-v1.10-migrator.x86_64 1.13.1-58.git87f2fab.el7.centos
docker-logrotate.x86_64 2:1.13.1-204.git0be3e21.el7 extras
docker-lvm-plugin.x86_64 2:1.13.1-204.git0be3e21.el7 extras
docker-novolume-plugin.x86_64 2:1.13.1-204.git0be3e21.el7 extras
docker-registry.x86_64 0.9.1-7.el7 extras
docker-v1.10-migrator.x86_64 2:1.13.1-204.git0be3e21.el7 extras
pcp-pmda-docker.x86_64 4.3.2-13.el7_9 updates
podman-docker.noarch 1.6.4-29.el7_9 extras
python-docker-py.noarch 1:1.10.6-11.el7 extras
python-docker-pycreds.noarch 1:0.3.0-11.el7 extras
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
[root@localhost ~]#
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 使用存储库安装
在首次在新主机上安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库中安装和更新Docker。
设置存储库
安装yum-utils
包(它提供了yum-config-manager
工具)并设置稳定储存库。
- 安装
yum-utils
获取yum-config-manager
```powershell [root@bogon ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum install -y yum-utils $ sudo yum-config-manager \ —add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
- <br />
```powershell
https://download.docker.com/linux/centos/docker-ce.repo
[root@bogon ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Media.repo epel.repo
CentOS-CR.repo CentOS-Sources.repo epel-testing.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-fasttrack.repo docker-ce.repo
5.3 安装docker-ce
- 如果安装慢的话 —> 推荐 清华源:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/
[root@bogon ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* epel: fedora.cs.nctu.edu.tw
* extras: mirrors.163.com
* updates: mirrors.neusoft.edu.cn
docker-ce-stable | 3.5 kB 00:00
(1/2): docker-ce-stable/x86_64/primary_db | 27 kB 00:01
(2/2): docker-ce-stable/x86_64/updateinfo | 55 B 00:01
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,019
docker-ce-stable/x86_64 Docker CE Stable - x86_64 41
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,082
extras/7/x86_64 CentOS-7 - Extras 386
updates/7/x86_64 CentOS-7 - Updates 1,580
repolist: 25,108
[root@bogon ~]# yum list | grep docker-ce
containerd.io.x86_64 1.2.5-3.1.el7 docker-c -
stable
docker-ce.x86_64 3:18.09.5-3.el7 docker-c -
stable
docker-ce-cli.x86_64 1:18.09.5-3.el7 docker-c -
stable
docker-ce-selinux.noarch 17.03.3.ce-1.el7 docker-c -
stable
PS: 注意要安装docker-ce版,不要安装docker(否则可能安装1.13老版本)
[root@bogon ~]# yum -y install docker-ce
[root@bogon ~]# systemctl is-enabled docker
disabled
[root@bogon ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to
/usr/lib/systemd/system/docker.service.
[root@bogon ~]# systemctl start docker
[root@bogon ~]# docker version
Client:
Version: 18.09.5
API version: 1.39
Go version: go1.10.8
Git commit: e8ff056
Built: Thu Apr 11 04:43:34 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.5
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: e8ff056
Built: Thu Apr 11 04:13:40 2019
OS/Arch: linux/amd64
Experimental: false
[root@localhost yum.repos.d]# docker --version
Docker version 20.10.5, build 55c4c88
[root@localhost yum.repos.d]# docker -v
[root@localhost yum.repos.d]# docker info
daemon 英 [ˈdiːmən] : 守护程序
[root@bogon ~]# docker version
Client:
Version: 18.09.5
API version: 1.39
Go version: go1.10.8
Git commit: e8ff056
Built: Thu Apr 11 04:43:34 2019
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker
daemon running?
#如果出现如上提示,请启动docker服务
docker 安装三种方法:
docker yum源安装
yum-utils
获取yum-config-manager
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装最新版本
$ sudo yum install docker-ce docker-ce-cli containerd.io
# docker -v
# docker --version
Docker version 20.10.5, build 55c4c88
# docker version
- 若要安装特定版本在Docker Engine中,列出可用的版本,然后选择并安装:
列出所有的docker 版本
$ yum list docker-ce --showduplicates | sort -r
安装特定的docker版本 For example, docker-ce-18.09.1
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
$ yum install -y docker-ce-18.09.1
- 启动docker
$ sudo systemctl start docker
- 测试,通过运行hello-world图像。
$ sudo docker run hello-world
此命令下载测试映像并在容器中运行。当容器运行时,它会打印一条信息性消息并退出
rpm 安装
.rpm
为您的发行文件和手动安装它。每次升级Docker引擎时,都需要下载一个新文件。Https://download.docker.com/linux/centos/选择你的CentOS版本。然后浏览到x86_64/stable/Packages/
并下载.rpm
要安装的Docker版本的文件。https://download.docker.com/linux/centos/7/x86_64/stable/Packages/#wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.5-3.el7.x86_64.rpm
sudo yum install /path/to/package.rpm
sudo systemctl start docker sudo docker run hello-world
脚本安装
shell> curl -fsSL https://get.docker.com -o get-docker.sh shell> sudo sh get-docker.sh 如果您想使用Docker作为非根用户,那么现在应该考虑将您的用户添加到“docker”组中 shell> sudo usermod -aG docker <your-user>
可选的安装后操作https://docs.docker.com/engine/install/linux-postinstall/
- 将Docker管理为非root用户
如果你不想为docker
命令用sudo
,创建一个组。docker
并将用户添加到其中。当Docker守护进程启动时,它将创建一个unix套接字,该套接字可由docker
小组。
若要创建docker分组并添加用户:
- 创建docker小组。
shell> sudo groupadd docker
- 将用户添加到docker小组。
shell> sudo usermod -aG docker $USER
- 退出并重新登录,激活对组的更改
在Linux上,还可以运行以下命令来激活对组的更改:
newgrp 指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组
shell> newgrp docker
- 验证您是否可以运行docker无命令sudo.
shell> docker run hello-world
如果您最初运行DockerCLI命令,则使用
sudo
在将用户添加到docker
组中,您可能会看到以下错误,这表明~/.docker/
目录创建的权限不正确,原因是sudo
命令。若要解决此问题,请删除
~/.docker/
目录(自动重新创建,但任何自定义设置都丢失),或使用以下命令更改其所有权和权限:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
- 将Docker配置为在启动时启动 ```powershell Docker服务默认配置为在启动时启动 shell> sudo systemctl enable docker.service shell> sudo systemctl enable containerd.service
shell> sudo systemctl stop docker.service shell> sudo systemctl is-enble docker.service shell> sudo systemctl disable docker.service shell> sudo systemctl disable containerd.service shell> sudo systemctl edit docker.service shell> sudo systemctl daemon-reload shell> sudo systemctl restart docker.service shell> sudo systemctl status docker shell> sudo netstat -lntp | grep dockerd ```