网址/应用查看
Ubuntu安装Docker及Docker的基本命令
安装步骤:
1.更新Ubuntu的apt源索引
$ sudo apt-get update
2.安装包允许apt通过HTTPS使用仓库
$ sudo dpkg --configure -a
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
3.添加Docker官方GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4.设置Docker稳定版仓库
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5.更新apt源索引
$ sudo apt-get update
6.安装最新版本Docker CE(社区版)
$ sudo apt-get install docker-ce
查看安装Docker的版本
$ docker --version
检查Docker CE 是否安装正确
$ sudo docker run hello-world
基本命令
# 启动docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重启docker
sudo service docker restart
# 列出镜像
docker image ls
# 拉取镜像
docker image pull library/hello-world
# 删除镜像
docker image rm 镜像id/镜像ID
# 创建容器
docker run [选项参数] 镜像名 [命令]
# 停止一个已经在运行的容器
docker container stop 容器名或容器id
# 启动一个已经停止的容器
docker container start 容器名或容器id
# kill掉一个已经在运行的容器
docker container kill 容器名或容器id
# 删除容器
docker container rm 容器名或容器id
# 查看运行
docker ps 查看是否运行
Centos安装Docker
安装步骤
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root
权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置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
6、安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
无法安装
CentOS 8.0 安装docker 报错:Problem: package docker-ce-3:19.03.4-3.el7.x86_64 requires containerd.io >= 1.2.2-3
1、错误内容
package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
2、分析原因
看上面的内容,说的是containerd.io >= 1.2.2-3 ,意思就是 containerd.io 的版本必须大于等于 1.2.2-3
3、解决
1、要么就降低docker 的版本
2、如果不想降低docker 版本,那么就更新 containerd.io 的版本
wget
https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum
install-y containerd.io-1.2.6-3.3.el7.x86_64.rpm
然后重新安装最新版本的docker 即可成功安装
4、检查是否安装成功
docker -v
缺少docker.socket
但是新版本需要docker.socket。有两种方法可以解决该问题:
- 可以卸载docker,再重新安装,即可出现docker.socket。
- 创建一个/usr/lib/systemd/system/docker.socket文件,然后systemctl daemon-reload,最后systemctl start docker.service,即可启动成功。
/usr/lib/systemd/system/docker.socket文件如下:
[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
卸载docker
1.查询安装过的软件包
yum list installed | grep docker
2.卸载安装的软件包
yum -y remove docker.x86_64
3.删除镜像/容器等
rm -rf /var/lib/docker
4、卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
查看错误问题日志systemctl status docker.service
Job for docker.service failed because the control process exited with error code.
Redirecting to /bin/systemctl start docker.service
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
[root@iZ2ze9ejlbzh5g69ezjn4eZ ~]# sudo service docker restart
Redirecting to /bin/systemctl restart docker.service
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
[root@iZ2ze9ejlbzh5g69ezjn4eZ ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2020-06-18 23:46:30 CST; 2min 32s ago
Docs: https://docs.docker.com
Process: 9866 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exit>
Main PID: 9866 (code=exited, status=1/FAILURE)
Jun 18 23:46:28 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: Failed to start Docker Application Container Engine.
Jun 18 23:46:30 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: docker.service: Service RestartSec=2s expired, scheduli>
Jun 18 23:46:30 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: docker.service: Scheduled restart job, restart counter >
Jun 18 23:46:30 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: Stopped Docker Application Container Engine.
Jun 18 23:46:30 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: docker.service: Start request repeated too quickly.
Jun 18 23:46:30 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: docker.service: Failed with result 'exit-code'.
Jun 18 23:46:30 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: Failed to start Docker Application Container Engine.
Jun 18 23:46:48 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: docker.service: Start request repeated too quickly.
Jun 18 23:46:48 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: docker.service: Failed with result 'exit-code'.
Jun 18 23:46:48 iZ2ze9ejlbzh5g69ezjn4eZ systemd[1]: Failed to start Docker Application Container Engine.
lines 1-17/17 (END)
^C
解决:
/etc/docker/daemon.json
文件中错误的配置引起的,这么配置阿里云加速
可以重启了
查看docker是否是真正的小型虚拟机
进入容器:
docker exec -it mysql /bin/bash
ls
whereis mysql
Ubuntu配置阿里云:
sudo systemctl daemon-reload
sudo systemctl restart docker
CentOS配置阿里云
{ "registry-mirrors": ["https://5vchsfan.mirror.aliyuncs.com"] }
sudo systemctl daemon-reload
sudo systemctl restart docker