前沿
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
当然,你也可以直接修改配置文件/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
出现这个界面说明安装成功
参考文档:
- https://docs.docker.com/install/linux/docker-ce/centos/
2 镜像加速器
使用配置文件 /etc/docker/daemon.json(没有时新建该文件)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [""]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
"
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 'Hello,Docker!
'>/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
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