Docker服务本操作
启动docker服务
systemctl start docker
查看docker状态
systemctl status docker
设置docker开机自启
systemctl enable docker
禁用docker开机自启
systemctl disable docker
重新启动docker服务
systemctl restart docker
查看docker信息
systemctl info
停止docker 服务
systemctl stop docker
docker镜像加速
修改配置文件 /etc/docker/daemon.json
1.
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
Docker镜像操作实践
下载镜像
docker pull hello-world
离线导入镜像
- 将镜像文件保存在文件中
- 进入镜像文件所在的位置
cd 文件所在位置
- 镜像导入
docker load <hello-world.tar.gz
查看镜像历史
docker history hello-world
删除镜像文件
docker image rm hello-world
导出镜像操作
docker save hello-world | gzip > hello-world.tar.gz
运行镜像文件
docker run hello-world
Docker 容器操作实践
下载镜像
docker pull centos:7
查看镜像文件
docker images
创建并启动镜像
docker run -it xxx bash
其中
1)xxxx–镜像名或者image id的前几位
2)-it 这是两个参数(-i表示交互操作,-t 表示终端)
3) bash 表示进入操作终端,基于交互式进行相关操作
查看docker中的容器
- 查看docker运行中的容器
docker ps
- 查看docker 运行中的所有容器
docker ps -a
查看容器日志信息
- 查看docker运行中的容器
docker ps
- 查看docker 运行中的所有容器
docker container logs 802
802为容器的IP
停止或重启容器
- 停止运行的容器
docker container stop 802
- 重启容器
docker container restart 802
进入指定容器
docker exec -it 803 bash #803为容器id
退出容器
exit
删除容器
docker container rm 802
Docker 数据管理实践
在容器中管理数据只要有两种方式
- 挂载主机目录(Bind mounts)最常用(docker run -v宿主机目录: 容器目录)
- 数据卷(Volumes)
数据卷操作
- 创建数据卷
docker volume create container-vol
- 查看所有数据卷
docker volume ls
查看指定数据卷的信息
docker volume ls
- 启动挂载数据卷的容器
docekr run -it -v container-vol:/root centos:7 bash
- 删除数据卷(如果数据卷被容器使用则无法删除)
docker volume rm container-vol
删除无主数据卷
docker volume prune
挂载主机目录
docker volume prune
其中
1) /usr/app:为宿主机目录
2)/opt/app:为启动容器
3) -v用于指定挂载目录,如果本地目录不存在 docker会自动为你按照挂载目录进行目录的创建
查看挂载目录信息
docker inspect 91a # 91a为容器id
Dockerfile及镜像制作实践
- 编写from 语句
from centos:7
- 通过add命令将宿主机中的压缩包传入镜像容器中的指定目录,并同时解压缩
add 压缩包 /usr/local/docker
- 设置环境变量
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
- 指定命令行操作
CMD ['bash']
- 使用dockerfile构建镜像
docker build -t jdk:8 . #注意不要丢掉点 .
运行镜像文件
docker run -it jdk:8 bash
- 将sentinel拷贝宿主机指定目录
- 启动镜像容器,通过Java执行运行web 服务
-v /root/servers:/usr/sca \
jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar
Docker 镜像安装实践
安装MySQL数据库
- 拉取指定版本
docker pull mysql:8.0.23
- 检查mysql镜像
docker images
- 启动运行mysql镜像
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.23
离线安装mysql
- 进入
登录mysql 服务
- 进入容器
sudo docker exec -it mysql bash
- 登录,一定要先进入mysql
mysql -uroot -proot
停止和启动mysql服务
- 停止mysql服务
docker stop mysql
- 启动mysql服务
docker start mysql
- 设置开机自启
docker update mysql --restart=always
安装Redis数据库
安装步骤
-
下载镜像文件
docker pull redis
-
准备配置文件
-
创建redis 实例并启动
-
查看正在运行的进程
访问redis服务器
步骤:
-
控制台直接连接redis测试
-
检测redis版本
-
登录redis
安装Nginx代理
安装步骤
-
拉取Nginx镜像
-
查看images镜像
-
创建数据卷
-
启动Nginx 服务
访问Nginx服务
安装Nacos组件
安装步骤
-
拉取nacos
-
mysql中执行nacos的sql脚本文件
(1) 将文件nacos-mysql.sql这个文件可以从code服务器下载,拷贝到mysql容器中的宿主机对应的挂载目录(可通过·docker inspect mysql
查看mysql的挂载)
(2)在Linux环境下启动并登录
1)进入mysql 容器(前提是mysql已经启动)
a
2)登录mysql
a
3)通过source指令运行容器目录下的sql文件
a
-
创建并启动nacos 容器
a
-
检查nacos服务
访问nacos服务
启动nacos,然后在windows中输入http://ip:port/nacos方式进行访问测试