速通Docker教程


一、安装docker
依次执行:
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
1、下载相关
先搜索:docker search nginx
在拉取:docker pull nginx
然后查看镜像:docker images
删除镜像:docker rmi
2、启动容器相关

查看容器:docker ps -a
删除容器前首先要停止容器,然后执行docker rm -f $(docker ps -aq)
进入容器:docker exec -it mynginx /bin/bash交互模式
后台启动:docker run
细节:docker -d表示后台启动
--name nginxx 起个别名
-p 80:80
必须使用端口映射,要不然只有在自己的虚拟主机中才会有,也就是自己的容器中才能使用;加-p参数

3、存储
因为每一个镜像都是相互隔离的,每一个镜像的数据都存储在自己的镜像中,所以镜像删除就会删除所有的镜像里的数据;
而且容器中的文件修改不容易,每一个容器都是一个虚拟机但是此虚拟机中没有很多命令!
目录挂载
启动容器时使用-v参数
比如说docker -v /app/ngtml:/usr/share/nginx/html
里面的容器目录/app/ngtml对应外面的主机中的/usr/share/nginx/html
卷映射
docker run -d --name db -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -m 2g mysql:8.0
docker -v ngconf:/usr/share/nginx/html
配置文件如果在外主机没有,启动是时就会出现文件夹有,但是配置文件找不到,因为我们没有实现放进去,所以启动失败;
所以使用数据卷:
主机中统一放在/var/lib/docker/volumes/
docker volume 是对卷的操作 ls create等
4、自定义网络
每一个容器使用docker run启动后,都会加入docker0的默认网络;
使用docker inspect nginx;可以查看
结论就是:docker每次启动一个容器,都会为容器分配一个ip在docker0中
问题:IP都会变,所以不方便怎么办?
使用域名--------
1.创建自定义网络
docker network create mynet
查看网络docker network ls
此时在启动:
docker run -d -p 82:80 --name app2 --network mynet nginx
再查看docker inspect app1
此时进入容器docker exec -it app1 bash
然后访问curl http://app2:80就会访问到app2的数据
更多推荐




所有评论(0)