
这两个命令对容器进行启动关闭
进入容器
我们使用docker默认的网络是bridge0,此模式下是自动为容器分配IP,我们的docker一关闭,然后重启,IP又会随机分配,这不是我们想要的,所以我们要自定义一个网路,自定义网络可以自己为容器指定IP,且重启后IP不会丢失,自定义网络如下;
docker network create --subnet=172.21.0.0/24 --gateway=172.21.0.1 cloud_net
通过上边的命令后,使用docker network ls查看我们的自己的网络,如图:

发现,自定义网络已经创建成功了。
我们使用自定义网络创建一个MySQL容器:

这个命令可以实现宿主机与容器间copy文件
docker run --restart=always -p 3306:3306 --name mysql8.0.23 --network=cloud_net --ip=172.21.0.11 -v /data/mysql/conf:/etc/mysql -v /data/mysql/logs:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.23

创建好后我们用inspect命令查看我们容器的详细信息
![]()

可以看到,容器已经使用我们自定义的IP了。
--redis
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
![]()
docker 安装Nginx
首先第一步拉取Nginx到本地,使用docker pull nginx
![]()
我们可以用docker images查看我们刚才下载的镜像

下载Nginx后我们使用run命令将镜像初始化为容器

然后使用docker ps 查看我们docker中启动的容器

至此,我们的Nginx就已经启动完成了,我们可以用curl命令测试一下服务是否可用

看到这个,说明我们的Nginx是可用的

默认网络是bridge模式,在这种模式下,容器之间可以通过docker0进行通信,不过外部网络不能访问到容器,所以我们使用host模式,这种模式下,容器与宿主机公用同一个IP
容器数据卷:使用 -v 本地目录:容器目录 命令进行将容器中的数据同步到本地,起到保护数据的作用,防止我们将容器删除时,数据也跟着丢失。
![]()
我们经过测试,在容器内新建一个文件,看能不能同步到本地

从测试结果来看,是可以正确同步到本地的。
我们再测试一下在本地新建一个文件,看能不能同步到容器内,

从结果来看,是可以从本地同步到容器内部的。
--rabbitmq

docker volumn ls 这个命令可以查看我们创建了哪些卷
将镜像发布到dockerHub
1.docker login进行登录
2.docker tag 将自己的镜像打上版本号(没有版本号dockerhub会拒绝push)
3.docker push 推送上去
