CentOS 安装 Docker

前沿

Docker是通过内核虚拟技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。


1 使用yum安装

1.1 安装所需的软件包。yum-utils提供yum-config-manager实用工具,device-mapper-persistent-data和lvm2是由devicemapper存储驱动程序。

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

1.2 鉴于国内网络问题,使用镜像源来安装

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 可选安装

如果需要最新版本的Docker-CE

sudo yum-config-manager --enable docker-ce-edge

若要禁用

sudo yum-config-manager --disable docker-ce-edge

如果需要测试版本的Docker-CE

sudo yum-config-manager --enable docker-ce-test
image.png

当然,你也可以直接修改配置文件/etc/yum.repos.d/docker-ce.repo进行定制版本的安装

1.4 更新yun软件源缓存并安装docker-ce

sudo yum makecache fast
sudo yum install docker-ce

1.5 启动docker-ce

sudo systemctl enable docker  #设置开机自启
sudo systemctl start docker  #启动服务

1.6 添加组和用户

默认情况下,docker命令会使用Unix socket与Docker引擎通讯。而只有root用户和docker组的用户才可以访问Docker引擎的Unix socket。出于安全考虑,一般Linux上不会直接使用root用户,因此需要将使用docker的用户添加到docker用户组中。

sudo groupadd docker
sudo usermod -aG docker wqq

1.7 测试Docker是否安装成功

退出当前终端并重新登录, 进行如下测试。

docker run hello-world
image.png

出现这个界面说明安装成功

参考文档:


2 镜像加速器

使用配置文件 /etc/docker/daemon.json(没有时新建该文件)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["<your accelerate address>"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

"<your accelerate address>",这是你自己在链接中生成的专属加速器地址,之后用docker pull拉取镜像,速度就会非常快

3 常用操作

docker pull nginx
docker image ls
docker run --name webserver -d -p 80:80 nginx #此时可以访问IP:80
docker container ls
docker exec -it webserver bash #docker exec 进入容器
echo '<h1>Hello,Docker!</h1>'>/usr/share/nginx/html/index.html  #访问IP:80
exit
docker diff webserver
docker commit -a wqq -m "修改了默认网页" webserver nginx:v2
docker image ls
docker history nginx:v2
docker run --name web2 -d -p 81:80 nginx:v2
docker container ls
mkdir mynginx
cd mynginx
vi Dockerfile
image.png
docker build -t nginx:v3 .
docker run -it --name web3 -d -p 83:80 nginx:v3
docker container ls

此时访问ip:80,ip:81,ip:83

4 迁移镜像

删除以镜像nginx:v3创建的容器

docker container stop web3
docker container rm web3

保存镜像

docker save nginx:v3 | gzip >nginx-v3.tar.gz

将nginx-v3.tar.gz文件复制到另一个机器上(由于这里只有一台机器,为了实验,先删除原有镜像nginx:v3,然后加载镜像)

docker image rm nginx:v3
docker image ls
docker load -i nginx-v3.tar.gz
docker image ls

docker run -it --name web3 -d -p 83:80 nginx:v3


image.png

推荐阅读更多精彩内容