## 更新yum源
yum update
##安装最新软件包,yum-utils 提供yum-config-manager功能,
yum install -y yum-utils device-mapper-persistent-data lvm2
##设置yum源
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/g' /etc/yum.repos.d/docker-ce.repo
##安装 Docker
yum install docker-ce docker-ce-cli containerd.io
##查看docker版本,验证是否部署成功
docker -v
##启动docker
systemctl enable docker
systemctl start docker
安装部署参考如下官网:Docker–从入门到实战官网
https://yeasy.gitbook.io/docker_practice/image/pull
若安装过程中出现报错,从此网站中下载 wsl.msi 文件
https://czf-net.xyz/res/
## 开机启动docker
systemctl enable docker
## 启动docker
systemctl start docker
#重启docker服务
service docker restart
systemctl restart network
## 查看docker状态
systemctl status docker
## 停止docker
systemctl stop docker
官方镜像仓库https://hub.docker.com/
## 查看docker镜像
docker images
## 查看docker所有镜像id
docker images -q
## 搜索docker hub是否存在镜像 eg: redis
docker search redis
## 拉取镜像
docker pull redis ## 后面不接tag版本号,则默认下载最新的latest版本
docker pull redis:5.0 ## 后面接tag版本号,则拉取指定版本
## 删除镜像
docker rmi <IMAGE ID>
docker rmi <REPOSITORY:TAG>
## 删除所有镜像,不要轻易使用
docker rmi `docker images -q`
## 查看镜像
[root@localhost local] docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 9f35042c6a98 About an hour ago 448MB
centos 7 eeb6ee3f44bd 12 days ago 204MB
redis latest 02c7f2054405 3 weeks ago 105MB
## 创建容器一,
## 参数说明
# i-容器保持一直运行
# t-给容器分配终端,输入命令
# d-后台运行容器
# -it 创建交互式容器,自动进入容器,退出容器,关闭容器
# -id 创建守护式容器,需使用docker exec 进入容器,退出不会关闭容器
# name-给容器起名字
# /bin/bash相当于打开shell窗口脚本
[root@localhost local] docker run -it --name=csd centos:7 /bin/bash
[root@7589d20a533a /] ls
## 退出容器
[root@7589d20a533a /] exit
exit
## 查看运行的容器
[root@localhost local] docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
## 查看所有容器
[root@localhost local] docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7589d20a533a centos:7 "/bin/bash" 11 minutes ago Exited (0) 10 minutes ago csd
##
## 创建容器 后台运行
[root@localhost local] docker run -id --name=c2 centos:7
c1e408d83b5146210a175618feac91cde45ccbad2f01a9d5e6e7f7307169074c
## 进入容器一
[root@localhost local] docker exec -it c2 /bin/bash
[root@c1e408d83b51 /] ll
## 进入容器二
docker attach 容器名称
## 查看所有容器
[root@localhost local] docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1e408d83b51 centos:7 "/bin/bash" 21 minutes ago Up 21 minutes c2
7589d20a533a centos:7 "/bin/bash" 40 minutes ago Exited (0) 39 minutes ago csd
## 停止容器
[root@localhost local] docker stop c2
c2
## 启动容器
[root@localhost local] docker start c2
c2
## 删除容器
[root@localhost local] docker rm csd
csd
## 查看所有容器id
[root@localhost local] docker ps -q
c1e408d83b51
## 删除所有容器
[root@localhost local] docker rm `docker ps -qa`
## 查看容器信息
[root@localhost local] docker inspect c2
数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
数据卷是宿主机中的一个目录或文件。当容器目录和数据卷目录绑定之后,对方的修改会立即同步。
数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker 不会在容器被删除后自动删除 数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的 数据卷。如果需要在删除容器的同时移除数据卷。可以在删除容器的时候使用 docker rm -v 这个命令。
挂载数据卷命令
注意事项:
1,目录必须是绝对路径
2,如果目录不存在,则会创建
3,一个容器可以挂载多个数据卷
4,多个容器可以挂载同一个数据卷,实现数据共享
方式一:
## -v 指定数据卷绝对路径所在目录,格式如<宿主机绝对路径:容器绝对路径>
## 若无当前目录,会自动创建
docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash
## 容器目录
[root@26db58674ca4 ~] ll
-rw-------. 1 root root 3416 Nov 13 2020 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Sep 30 06:25 data_container
## 宿主机数据卷目录
[root@localhost ~] ll
-rw-------. 1 root root 2763 Aug 18 19:55 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Sep 29 23:25 data
方式二:
## 一个容器可以挂载多个数据卷, \ 可以换行
[root@localhost ~] docker run -it --name=c2 \
> -v ~/data2:/root/data2 \
> -v ~/data3:/root/data3 \
> centos:7
[root@931d6c0d19a3 /] ll
[root@931d6c0d19a3 /] cd ~
[root@931d6c0d19a3 ~] ll
total 4
-rw-------. 1 root root 3416 Nov 13 2020 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Sep 30 07:14 data2
drwxr-xr-x. 2 root root 6 Sep 30 07:14 data3
docker容器启动报:WARNING: IPv4 forwarding is disabled. Networking will not work.
[root@localhost ~]# docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
启动镜像,发现没有网络,而且不能ifconfig,因为没有开启转发,网桥配置完后,需要开启转发,不然容器启动后,就会没有网络,配置/etc/sysctl.conf,添加net.ipv4.ip_forward=1
配置转发
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
检查容器是否正常访问网络
#重启docker服务
service docker restart
#查看运行过的容器
docker ps -a
#启动容器
docker start c1
#进入容器
docker attach c1
#获取百度信息
curl www.baidu.com
1,创建启动c3数据卷容器,使用 -v 参数设置数据卷**
docker run -it --name=c3 -v /volume centos:7 /bin/bash
2,创建启动c1,c2容器,使用 --volumes-from 参数<容器名称> 设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash