一、安装
1、最小化安装操作系统rokcylinux8.6
2、关闭防火墙及selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl disable firewalld
reboot
3、更新yum源为阿里云
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
dnf makecache
4、安装命令自动补全
dnf install -y wget bash-completion
5、安装依赖包
dnf install -y yum-utils device-mapper-persistent-data lvm2 vim net-tools
6、更新docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
7、安装docker
dnf -y install docker-ce
8、启动docker,并设置成开机启动
systemctl enable --now docker;systemctl status docker
9、查看docker 版本等信息
二、实验
1、查找镜像及下载
docker search debian
注:official [ok]为官方像
https://hub.docker.com 查具体版本
2、修改docker镜像加速器
vim /etc/docker/daemon.json
填加如下:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
重新启动docker
systemctl restart docker
3、下载镜像
docker pull debian:unstable-20220822-slim
docker images
4、运行容器
docker run -it debian:unstable-20220822-slim /bin/bash
后台运行容器 -d
docker run -d nginx -p 8080:80 nginx
docker ps
-p 8080(物理机端口):80(容器端口) 8080:80/udp 用于做UDP端口映射
注:未加-d时 exit 容器会显示退出状态,docker ps -a查看退出状态容器
停止容器
docker stop 7cef9e43bbd9
暂停及恢复容器
docker pause 7cef9e43bbd9
docker unpause 7cef9e43bbd9
5、删除容器
退出状态容器删除
docker rm 7cef9e43bbd9
正在运行的容器需stop后才可删除,也可加kill强制删除
docker stop eager_lamarr;docker rm eager_lamarr
或
docker kill -s KILL eager_lamarr
若退出容器较多时,可一次性删除所有退出容器(此命令慎用)
docker container prune
6、访问正在运行的容器
docker exec -it 449dd9abc73c /bin/bash
7、docker镜像的导出及导入
导出镜像
docker save nginx:latest > /tmp/nginxlatest.tar
删除docker镜像
docker rmi nginx:latest
docker images
导入镜像
docker load < /tmp/nginxlatest.tar
docker images
8、容器目录映射至物理机目录
运行容器
docker run -d -p 8080:80 -v /mynginx/html:/usr/share/nginx/html --restart=always --name=mynginx nginx
echo 'hello mynginx' > /mynginx/html/index.html
curl 192.168.3.117:8080
注:-v中 /mynginx/html 为物理机目录,此目录不必创建,运行容器时自动创建,/usr/share/nginx/html为容器目录
docker inspect mynginx | grep IPAddress
curl 172.17.0.2
注:docker inspect 查看容器的详细信息
9、物理机与容器文件互拷
1)拷贝容器内文件至物理机
docker cp mynginx:/etc/nginx/nginx.conf /tmp
ls -lh /tmp/nginx.conf
2)拷贝物理机文件至容器
docker cp /tmp/nginx.conf mynginx:/tmp
docker exec -it mynginx /bin/bash
ls /tmp