卸载Docker
在线安装docker
第一步安装一组工具:
sudo yum install -y yum-utils
第二步:设置yum仓库地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步:更新yum缓存
sudo yum makecache fast #yum 是包管理
第四步:安装新版docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
离线安装Docker
下载docker离线包:
下载离线安装工具
在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)
执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
安装成功后检查安装状态
docker info
Docker 服务的基本操作
启动docker服务:systemctl start docker
查看docker状态:systemctl status docker
设置docker开机自启:systemctl enable docker
禁用docker开机自启:systemctl disable docker
重新启动docker服务:systemctl restart docker
查看docker信息:docker info
停止docker服务:systemctl stop docker
Docker 镜像操作
下载镜像:docker pull hello-world
查看所有镜像:docker image
查看镜像详情:docker inspect hello-world(镜像名或镜像id或镜像id的前三位)
查看镜像历史:docker history hello-world
导出镜像文件:docker save hello-world | gzip > hello-world.tar.gz
删除镜像文件:docker image rm hello-world
导入镜像操作(要在hello-world.tar.gz文件所在目录下执行): docker load < hello-world.tar.gz
运行镜像文件:docker run hello-world
Docker 容器操作实践
-it:这是两个参数(-i表示交互式操作,-t表示终端)
bash表示进入操作终端,基于交互式进行相关操作
下载CentOS镜像:docker pull centos:7
创建并启动容器:docker run -it 镜像名/镜像id前几位 bash
例如:docker run -it centos:7 bash
查看docker运行中的容器(要在宿主机执行docker指令):docker ps
查看docker运行中的所有容器:docker ps -a
查看容器日志logs信息:docker container logs 802(容器id的前三位)
停止容器:docker container stop 802
重启容器:dockerscontainer restart 802
当容器处于运行状态,要进入容器可以使用docker exec命令(若没有运行时,执行此命令会出问题):docker exec -it 802 bash
退出容器:exit
删除容器:docker container rm 802(若容器正在运行执行此命令会出错)
删除正在运行的容器:docker container rm -f 802
清除所有处于终止状态容器:docker container prune(执行完后,可以通过docker ps -a查看容器是否删除了)
数据卷操作:
创建数据卷:docker volume create container-vol
查看所有数据卷:docker volume ls
查看指定数据卷的信息:docker volume inspect container-vol
启动挂载数据卷的容器:docker run -it --mount source=container-vol,target=/root centos:7 bash (简写:docker run -it -v container-vol:/root centos:7 bash)
删除数据卷(如果数据卷被容器使用则无法删除):docker volume rm container-vol
清理无主数据卷:docker volume prunm
Dockerfile及镜像制作实践
把压缩包jdk-8u51-linux-x64.tar.gz拷贝到/root/setup/jdk中
进入jdk-8u51-linux-x64.tar.gz文件所在目录:基于vim创建Dockerfile文件:vim Dockerfile
拷贝:
FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /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']
制作JDK镜像
创建jdk镜像文件:在Dockerfile所在目录执行docker build指令
docker build -t jdk:8 . #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.
运行JDK镜像文件
docker run -it jdk:8 bash
基于JDK镜像启动sentinel:
第一步:将sentinel-dashboard-1.8.0.jar拷贝宿主机指定目录,例如/root/servers目录(servers目录不存在可以自己创建)。
启动镜像容器,通过java执行运行web服务
基于jdk:8镜像启动运行sentinel服务(服务启动后可在宿主机通过localhost:8180进行访问)
docker run -d -p 8180:8080 --name sentinel \
-v /root/servers:/usr/sca \
jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar
这里,服务启动后可通过docker ps 指令查看启动的服务,假如看不到服务,可能服务启动失败,可通过如下指令查看具体日志
docker container logs 689 #这里689为容器id,也可以为你的容器名
第三步:打开浏览器,访问sentinel服务.
在windows中打开浏览器,输入你的ip地址(这个ip为远端宿主机的ip地址),端口号为宿主机的端口号.(8081)
制作Sentinel镜像文件
通过docker images指令查看centos:7是否存在,然后将 jdk-8u51-linux-x64.tar.gz,sentinel-dashboard-1.8.0.jar放在/root/setup/sentinel目录(目录不存在的话自己创建)
第一步:在sentinel所在目录创建Dockerfile文件,并添加如下内容
FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/
ADD sentinel-dashboard-1.8.0.jar /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
PATH=/usr/local/jdk1.8.0_51/bin:$PATH
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]
第二步:使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)
docker build -t sentinel:8 . #不要丢掉这里的点
第三步:后台运行sentinel容器
docker run -d --name sentinel8181 -p 8181:8080 sentinel:8 #-d 表示后台运行,-p用于指定端口映射,sentinel:8为镜像文件名
第四步:查看sentinel容器
docker ps
第五步:访问sentinel服务
安装Mysql数据库
安装mysql
下载:docker pull mysq:8.0.23
检查:docker images
运行mysql镜像:
sudo docker run -p 3306:3306 --name 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
假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可。
登录mysql服务:
进入容器:sudo docker exec -it mysql bash
登录mysql,一定要先进入mysql:mysql -uroot -proot
停止mysql:docker stop mysql
启动mysql:docker start mysql
查看mysql启动时的日志:docker container logs mysql
设置mysql开机自启动:docker update mysql --restart=always
安装Redis数据库
安装redis
下载镜像文件:docker pull redis
准备配置文件:
1.创建redis配置文件目录:mkdir -p /usr/local/docker/redis01/conf
2.在配置文件录下创建redis.conf配置文件(这个文件一定要创建,否在我们进行目录挂载时默 认生成的是一个目录):touch /usr/local/docker/redis01/conf/redis.conf
创建redis实例并启动:
sudo docker run -p 6379:6379 --name redis01 \
-v /usr/local/docker/redis01/data:/data \
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
查看正在运行的进程:docker ps
访问redis服务器:
第一步:控制台直接连接redis测试:docker exec -it redis01 bash
第二步:检测redis 版本:redis-server -v 或者:redis-cli -v
第三步:登录redis(默认不需要密码):redis-cli
或者直接将上面的两个步骤合为一个步骤执行也可以,指令如下:ocker exec -it redis01 redis-cli
停止访问:docker stop redis01
启动访问:docker start redis01
重启访问:docker restart redis01
安装Nginx代理
安装Nginx
下载:docker pull nginx
查看:docker images
创建数据卷(这个对象会在宿主机直接创建一个目录):docker volume create nginx-vol
查看数据卷对应的宿主机目录,可以通过如下指令:docker inspect nginx-vol
启动nginx服务:docker run --name nginx -p 80:80 -v nginx-vol:/etc/nginx -d nginx
停止访问:docker stop nginx
启动访问:docker start nginx
重启访问:docker restart nginx
安装Nacos组件
安装nacos组件:
第一步下载:docker pull nacos/nacos-server:1.4.1
第二步: mysql中执行nacos的sql脚本文件
1)将此文件nacos-mysql.sql(这个文件可从code服务器下载)拷贝到mysql容器的宿主机对应的挂载目录(可通过docker inspect mysql查看你mysql的挂载目录)
2)在linux环境下启动并登录mysql进入mysql容器(前提是mysql已启动):docker exec -it mysql bash
登录mysql:mysql -uroot -p
3)通过source指令运行容器目录下的sql文件:source /etc/mysql/nacos-mysql.sql #这里的/etc/mysql为容器中的一个目录(要选择你自己挂载的目录)
第三步:创建并启动nacos容器(拷贝下面内容时,账号和密码要用自己宿主机ip,自己数据库的账号密码):
docker run \
-e TZ="Asia/Shanghai" \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_SERVICE_HOST=192.168.126.129 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
-d nacos/nacos-server:1.4.1
第四步:检查nacos服务:docker ps
假如启动失败,检查启动日志,例如:docker container logs nacos(其中,nacos的启动日志在/home/nacos/logs/start.out文件中。
访问nacos服务
启动nacos,然后在windows中输入http://ip:port/nacos方式进行访问测试(port为:8848)
停止访问:docker stop nacos
启动访问:docker start nacos
重启访问:docker restart nacos