docker平台中常用的镜像,容器,和数据卷操作指令
-
卸载Docker
- sudo yum remove docker-ce
docker-ce-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
- sudo yum remove docker-ce
-
在线安装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离线包:
- https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
-
下载离线安装工具
- https://github.com/Jrohy/docker-install/
-
在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
- -d 表示后台运行
- -p 用于实现端口映射(假设外部要访问这个容器,必须要做端口映射)
- –name 表示为启动的容器起一个名字
-
这里,服务启动后可通过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
-
-