CentOS Docker常用命令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了CentOS Docker常用命令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含10272字,纯文字阅读大概需要15分钟。
内容图文
<div id="article_content" class="article_content clearfix">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css">
<div id="content_views" class="markdown_views prism-atom-one-light">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<h1><a name="t0"></a><a name="t0"></a><a id="Docker_0"></a>一、Docker安装</h1>
1.1 更新yum
yum update
- 1
1.2 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
- 1
1.3 添加yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 1
1.4 安装containerd.io
dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
- 1
1.5 安装docker-ce
yum install docker-ce
- 1
1.6 启动Docker服务
systemctl start docker
- 1
1.7 配置阿里云镜像
- 登录阿里云
- 进入控制台
- 进入容器镜像服务
- 选择镜像加速器
- 复制并执行命令
二、进程命令
2.1 启动Docker服务
systemctl start docker
- 1
2.2 停止Docker服务
systemctl stop docker
- 1
2.3 重启Docker服务
systemctl restart docker
- 1
2.4 查看Docker服务状态
systemctl status docker
- 1
2.5 设置开机启动docker服务
systemctl enable docker
- 1
三、镜像命令
3.1 查看本地所有镜像
docker images
- 1
3.2 在线查找镜像
docker search 镜像名称
- 1
3.3 拉取镜像
docker pull 镜像名称:版本号
- 1
3.4 删除本地镜像
docker rmi 镜像id
- 1
四、容器命令
4.1 查看所有容器
docker ps –a
- 1
4.2 创建并启动容器
docker run 参数
- 1
参数说明:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
-it:创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
–name:为创建的容器命名。
示例:
docker run -it --name=容器名字 镜像名称:镜像版本 /bin/bash
- 1
4.3 进入容器
docker exec -it 容器名 /bin/bash
- 1
4.4 停止容器
docker stop 容器名称
- 1
4.4 启动容器
docker start 容器名称
- 1
4.5 删除容器
docker rm 容器名称
- 1
4.6 查看容器信息
docker inspect 容器名称
- 1
五、数据卷命令
5.1 配置数据卷
docker run -it --name=容器名称 -v /root/data:/root/data_container 镜像名称:镜像版本 /bin/bash
- 1
注意事项:
- 目录必须是绝对路径
- 如果目录不存在,会自动创建
- 可以挂载多个数据卷
5.1 配置数据卷容器
- 创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
- 1
- 创建启动 c1 c2 容器,使用 --volumes-from 参数 设置数据卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
- 1
docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
- 1
六、应用部署
6.1 部署Mysql
6.1.1 拉取镜像
docker pull mysql:版本号
- 1
6.1.2 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
- 1
cd ~/mysql
- 1
6.1.3 创建容器,设置端口映射、目录映射
docker run -id \
-p 宿主机端口:容器端口 \
--name=容器名称 \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=数据库密码 \
mysql:版本号
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 参数说明:
- -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
6.2 部署Tomcat
6.2.1 拉取镜像
docker pull tomcat:版本号
- 1
6.2.2 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
- 1
cd ~/tomcat
- 1
6.2.3 创建容器,设置端口映射、目录映射
docker run -id --name=容器名称 \
-p 宿主机端口:容器端口 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat:版本号
- 1
- 2
- 3
- 4
- 参数说明:
- -v $PWD:/usr/local/tomcat/webapps:将主机中当前目录挂载到容器的webapps
6.3 部署Nginx
6.3.1 拉取镜像
docker pull nginx:版本号
- 1
6.3.2 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
- 1
cd ~/nginx
- 1
6.3.3 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
- 1
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
6.3.4 创建容器,设置端口映射、目录映射
docker run -id --name=容器名称 \
-p 宿主机端口:容器端口 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx:版本号
- 1
- 2
- 3
- 4
- 5
- 6
- 参数说明:
- -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
- -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录
6.3 部署Redis
6.3.1 拉取镜像
docker pull redis:版本号
- 1
6.3.2 在/root目录下创建redis目录用于存储redis数据信息
mkdir ~/redis
- 1
cd ~/redis
- 1
6.3.3 创建容器,设置端口映射
docker run -id --name=容器名称 -p 宿主机端口:容器端口 redis:版本号
- 1
6.3.4 根据配置文件启动redis
创建宿主机 redis 容器的数据和配置文件目录
mkdir redis/{conf,data} -p
- 1
进入conf目录下创建 redis.conf 并编写自定义配置
cd redis/conf
- 1
vi redis.conf
- 1
创建并运行一个名为 redis 的容器
docker run -p 6379:6379 --name redis -v $PWD/conf/redis.conf:/etc/redis/redis.conf:ro -v $PWD/data:/data:rw -d redis:5.0 redis-server /etc/redis/redis.conf --appendonly yes
- 1
- 参数说明:
- -v $PWD/conf/redis.conf:/etc/redis/redis.conf:ro:挂载配置文件,/conf/redis.conf是自己配置文件的地址,/usr/local/etc/redis/redis.conf是容器中的配置文件地址,容器启动成功后会自己创建,之后可以通过更改宿主机的配置文件来达到更改容器实际配置文件的目的。“:ro”这个是给容器中/redis.conf添加只读权限。
- -v $PWD/data:/data:rw:挂载持久化文件,左/data是宿主机中持久化文件的位置,右/data是容器中持久化文件的位置(需要和配置文件中dir属性值一样),“:rw”这个是给容器中/data目录添加读写权限。
- -d:后台启动
- redis-server /etc/redis/redis.conf:用配置文件方式启动redis
- –appendonly yes:打开redis持久化配置
七、Dockerfile
7.1 容器转为镜像
docker commit 容器id 镜像名称:版本号
- 1
7.2 镜像转为压缩文件
docker save -o 压缩文件名称 镜像名称:版本号
- 1
7.3 解压压缩文件
docker load –i 压缩文件名称
- 1
7.5 通过dockerfile构建镜像
docker bulid –f dockerfile文件路径 –t 镜像名称:版本号
- 1
7.6 部署springboot项目
- 定义父镜像:FROM java:版本号
- 定义作者信息:MAINTAINER 作者信息
- 将jar包添加到容器: ADD springboot.jar app.jar
- 定义容器启动执行的命令:CMD java -jar app.jar
- 通过dockerfile构建镜像:docker build –f dockerfile文件路径 -t 镜像名称:版本号
- 启动容器:docker run -id -p 宿主机端口:容器端口 容器名称
示例:
springboot_dockerfile
FROM java:8
MAINTAINER itheima <itheima@itcast.cn>
ADD springboot-hello-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar
- 1
- 2
- 3
- 4
通过dockerfile构建镜像
docker build -f ./springboot_dockerfile -t app .
- 1
启动容器
docker run -id -p 9000:8080 app
- 1
测试访问
http://192.168.116.128:9000/hello
- 1
八、Docker Compose
8.1 安装
8.1.1 以编译好的二进制包方式安装在Linux系统中
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- 1
8.1.2 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
- 1
8.1.3 查看版本信息
docker-compose -version
- 1
8.1.4 卸载
rm /usr/local/bin/docker-compose
- 1
8.2 使用docker compose编排nginx+springboot项目
8.2.1 创建docker-compose目录
mkdir ~/docker-compose
- 1
cd ~/docker-compose
- 1
8.2.2 编写 docker-compose.yml 文件
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
8.2.3 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
- 1
8.2.4 在./nginx/conf.d目录下 编写itheima.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
8.2.5 在 ~/docker-compose 目录下启动容器
docker-compose up
- 1
8.2.6 测试访问
http://192.168.116.128/hello
- 1
若出现502错误,可尝试关闭防火墙测试
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
- 1
- 2
九、Docker私有仓库
9.1 私有仓库搭建
9.1.1 拉取私有仓库镜像
docker pull registry
- 1
9.1.2 启动私有仓库容器
docker run -id --name=容器名称 -p 宿主机端口:容器端口 registry
- 1
9.1.3 打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{“repositories”:[]} 表示私有仓库 搭建成功
9.1.4 修改daemon.json
vim /etc/docker/daemon.json
- 1
在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip
{“insecure-registries”: [“私有仓库服务器ip:5000”]}
9.1.5 重启docker服务
systemctl restart docker
- 1
docker start registry
- 1
9.2 将镜像上传至私有仓库
9.2.1 标记镜像为私有仓库的镜像
docker tag centos:7 私有仓库服务器IP:5000/centos:7
- 1
9.2.2 上传标记的镜像
docker push 私有仓库服务器IP:5000/centos:7
- 1
9.3 从私有仓库拉取镜像
docker pull 私有仓库服务器ip:5000/centos:7
- 1
</div><div><div></div></div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
<div></div>
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/weixin_41105242">
<img src="https://profile.csdnimg.cn/A/1/C/3_weixin_41105242" class="avatar_pic" username="weixin_41105242">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit "><a href="https://blog.csdn.net/weixin_41105242" data-report-click="{"mod":"popu_379","ab":"new"}" target="_blank">SongYu-SY</a></span>
<!-- 等级,level -->
<img class="identity-icon" src="https://csdnimg.cn/identity/blog2.png"> </div>
<div class="text"><span>原创文章 14</span><span>获赞 1</span><span>访问量 436</span></div>
</div>
<div class="right-message">
<a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379","ab":"new"}">关注</a>
<a href="https://im.csdn.net/im/main.html?userName=weixin_41105242" target="_blank" class="btn btn-sm bt-button personal-letter">私信
</a>
</div>
</div>
</div>
</article>
内容总结
以上是互联网集市为您收集整理的CentOS Docker常用命令全部内容,希望文章能够帮你解决CentOS Docker常用命令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。