Bootstrap

docker容器安装及实验

 一、安装

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

;