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 dockercockpit-docker.x86_64 195.12-1.el7.centos extrasdocker.x86_64 2:1.13.1-204.git0be3e21.el7 extrasdocker-client.x86_64 2:1.13.1-204.git0be3e21.el7 extrasdocker-client-latest.x86_64 1.13.1-58.git87f2fab.el7.centosdocker-common.x86_64 2:1.13.1-204.git0be3e21.el7 extrasdocker-distribution.x86_64 2.6.2-2.git48294d9.el7 extrasdocker-latest.x86_64 1.13.1-58.git87f2fab.el7.centosdocker-latest-logrotate.x86_64 1.13.1-58.git87f2fab.el7.centosdocker-latest-v1.10-migrator.x86_64 1.13.1-58.git87f2fab.el7.centosdocker-logrotate.x86_64 2:1.13.1-204.git0be3e21.el7 extrasdocker-lvm-plugin.x86_64 2:1.13.1-204.git0be3e21.el7 extrasdocker-novolume-plugin.x86_64 2:1.13.1-204.git0be3e21.el7 extrasdocker-registry.x86_64 0.9.1-7.el7 extrasdocker-v1.10-migrator.x86_64 2:1.13.1-204.git0be3e21.el7 extraspcp-pmda-docker.x86_64 4.3.2-13.el7_9 updatespodman-docker.noarch 1.6.4-29.el7_9 extraspython-docker-py.noarch 1:1.10.6-11.el7 extraspython-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 />```powershellhttps://download.docker.com/linux/centos/docker-ce.repo[root@bogon ~]# ls /etc/yum.repos.d/CentOS-Base.repo CentOS-Media.repo epel.repoCentOS-CR.repo CentOS-Sources.repo epel-testing.repoCentOS-Debuginfo.repo CentOS-Vault.repoCentOS-fasttrack.repo docker-ce.repo
5.3 安装docker-ce
- 如果安装慢的话 —> 推荐 清华源:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/
[root@bogon ~]# yum repolist已加载插件:fastestmirrorLoading mirror speeds from cached hostfile* base: mirrors.huaweicloud.com* epel: fedora.cs.nctu.edu.tw* extras: mirrors.163.com* updates: mirrors.neusoft.edu.cndocker-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,019docker-ce-stable/x86_64 Docker CE Stable - x86_64 41*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,082extras/7/x86_64 CentOS-7 - Extras 386updates/7/x86_64 CentOS-7 - Updates 1,580repolist: 25,108[root@bogon ~]# yum list | grep docker-cecontainerd.io.x86_64 1.2.5-3.1.el7 docker-c -stabledocker-ce.x86_64 3:18.09.5-3.el7 docker-c -stabledocker-ce-cli.x86_64 1:18.09.5-3.el7 docker-c -stabledocker-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 dockerdisabled[root@bogon ~]# systemctl enable dockerCreated 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 versionClient:Version: 18.09.5API version: 1.39Go version: go1.10.8Git commit: e8ff056Built: Thu Apr 11 04:43:34 2019OS/Arch: linux/amd64Experimental: falseServer: Docker Engine - CommunityEngine:Version: 18.09.5API version: 1.39 (minimum version 1.12)Go version: go1.10.8Git commit: e8ff056Built: Thu Apr 11 04:13:40 2019OS/Arch: linux/amd64Experimental: false[root@localhost yum.repos.d]# docker --versionDocker 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 versionClient:Version: 18.09.5API version: 1.39Go version: go1.10.8Git commit: e8ff056Built: Thu Apr 11 04:43:34 2019OS/Arch: linux/amd64Experimental: falseCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the dockerdaemon 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 --versionDocker 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.rpmsudo yum install /path/to/package.rpmsudo 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 ```
