关于防火墙操作
1.操作docker需要修改防火墙,就先把防火墙关闭
//查看防火墙状态
systemctl status firewalld
//停止防火墙
systemctl stop firewalld
//禁止开机自启防火墙
systemctl disable firewalld
docker命令
//启动docker
systemctl start docker
//停止docker
systemctl stop docker
//查看docker版本
docker -v
//配置镜像加速(腾讯云那个已经自己配置了镜像加速),这里是网易的
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
获取镜像的方式2种
//一.从docker registry上进行下载安装,安装镜像 docker pull
docker pull nginx
//二.本地docker build进行镜像构建
//查看本地docker的镜像列表
docker images
//删除镜像
docker rmi nginx:latest
//保存镜像为一个压缩包
压缩:docker save -o nginx.tar nginx
查看:ll
//加载压缩包为镜像
docker load -i nginx.tar
容器相关指令
有了镜像后,就可以把镜像转为容器进行运行
//查看所运行的容器及状态
docker ps
//查看所有容器,包括未运行的
docker ps -a
//创建容器解读:
- docker run :创建并运行一个容器
- --name : 给容器起一个名字,比如叫做mn
- -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
- -d:后台运行容器
- nginx:镜像名称,例如nginx
docker run --name mynginx -p 80:80 -d nginx
//暂停
docker pause
//容器恢复暂停
docker unpause
//停止容器
docker stop mynginx
//启动容器
docker start
//查看容器运行日志
docker logs
//进入容器执行命令
docker exec -it mn bash
//删除容器
docker rm
进入容器,修改文件(不方便,一般不用)
需求:进入Nginx容器,修改HTML文件内容,添加“传智教育欢迎您”
提示:进入容器要用到docker exec命令。
步骤:
1)进入容器。进入我们刚刚创建的nginx容器的命令为:
//获取容器列表,进入想进入的容器
docker ps
结果
然后执行进入命令
docker exec -it mynginx bash
命令解读:
docker exec :进入容器内部,执行一个命令
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
mn :要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令
2)进入nginx的HTML所在目录 /usr/share/nginx/html
容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:
nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。
查看DockerHub网站中的nginx页面,可以知道nginx的html目录位置在/usr/share/nginx/html
我们执行命令,进入该目录:
cd /usr/share/nginx/html
查看目录下文件:
3)修改index.html的内容
容器内没有vi命令,无法直接修改,我们用下面的命令来修改:
sed -i -e 's#Welcome to nginx#传智教育欢迎您#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html
在浏览器访问自己的虚拟机地址,例如我的是:http://192.168.150.101,即可看到结果:
数据卷操作
需求:创建一个数据卷,并查看数据卷在宿主机的目录位置
① 创建数据卷
docker volume create html
② 查看所有数据
docker volume ls
结果:③ 查看数据卷详细信息卷
docker volume inspect html
结果:
可以看到,我们创建的html这个数据卷关联的宿主机目录为/var/lib/docker/volumes/html/_data
目录。
数据卷操作:
//创建数据卷
docker volume create html
//查看所有数据卷
docker volume ls
//查看数据卷详细信息,包括关联的宿主机目录位置
docker volume inspect html
//删除指定数据卷
docker volume rm html
//删除所有未使用的数据卷
docker volume prune
创建容器并且挂载数据卷
分析:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。
提示:运行容器时使用 -v 参数挂载数据卷
直接会创建数据卷,不用手动创建
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
docker创建mysql容器并设置数据卷
使用DockerHost(系统自己创建目录,不能规定目录在哪)
使用宿主机文件系统进行挂载数据卷(自己创建目录,自己管理数据)
1.导入镜像后进行释放
2.用镜像创建容器
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-d \
mysql:5.7.25
查看日志
docker logs -f kibana