吴旭华 发表于 2022-6-26 01:34:01

Docker命令实战

1、常用命令

https://img-blog.csdnimg.cn/ebf45838341b499e9a3632c4a67d7abf.png

2、基础实战

 1. 找镜像(docker hub)并下载(docker pull):

1.例如:下载nginx和redis,去docker hub找到nginx和redis镜像
docker pull nginx#默认下载最新版
docker pull redis#默认下载最新版
//如果要下载指定版本:镜像名:版本名(也叫标签);例如:docker pull nginx:1.20.1  2.查看下载的镜像(docker images)都保存在本地
docker images#查看所有镜像 https://img-blog.csdnimg.cn/2e1b4c5e92b84520bbc58d1b31a115a8.png
3.删除下载的镜像(docker rmi),并再次查看
docker rmi 镜像名;
# 例如:docker rmi redis (nginx等价于nginx:latest)删除的是最新版本

# 如果删除指定版本呢?
docker rmi 镜像名:版本号/镜像id https://img-blog.csdnimg.cn/5b5b8d98393546e59a1aafcd80d6a6bd.png

2.  启动容器:

1. 启动(docker run)
docker run IMAGE
# 解释:【docker run设置项   镜像名】 镜像启动运行的命令(镜像里面默认有的,一般不会写)
# 例:docker run --name=mynginx -d --restart=always -p88:80 nginx
   # --name=mynginx设置名字
   # -d:后台运行
   # --restart=always: 开机自启
   # -p88:80 把主机的88端口转到80端口

# 启动nginx应用容器,真正的运行起来;并映射88端口,测试的访问 2.停止运行
# 停止容器
docker stop 容器id/名字
# 再次启动
docker start 容器id/名字 3.查看正在运行的容器
docker ps  ​4. 查看docker运行的和停止的容器
docker ps -a  5.删除(docker rmdocker )
# 删除停止的容器
docker rm容器id/名字
# 强制删除正在运行中的
docker rm -f mynginx     ​​​6.补充
# 如果才开始没有设置开机自启怎么办?更新一下设置项
docker update 容器id/名字 --restart=always
3. 修改容器内容:修改默认的index.html 页面

方法1:进入到容器里去修改
1.通过公网IP192.168.2.129,88端口去访问nginx
https://img-blog.csdnimg.cn/f516b60a73b2427ea7e09455466ae461.png
2.  修改默认的index.html 页面
进入容器内部修改
# 进入容器内部的系统,修改容器内容
docker exec -it 容器id/bin/bash
# -it表示已交互模式进入容器
#/bin/bash 进入容器的bash控制台(相当于linux下的另一个小型linux环境)

cd /usr/share/nginx/html #然后ls,里面有一个index.html
echo "<h1>Welcome to China</h1>"> index.html #<h1></h1>表示标题
# 改好页面以后,exit就可以退出! https://img-blog.csdnimg.cn/a557201586e448e48115533218413bbe.png
通过公网IP192.168.2.129,88端口去访问nginx,就会发现页面修改成功
https://img-blog.csdnimg.cn/b9c7c205f19647ca97ba3b97658911d5.png

 方法2:命令挂载:在主机外面修改
1.把容器里的目录与当前目录建立起链接
docker run --name=mynginx -d --restart=always -p88:80 \
-v /data/html:/usr/share/nginx/html :ro nginx
# -v 后面表示把主机的目录挂载到容器里的目录,和端口的方式很相似;
# /data/html主机目录
# /usr/share/nginx/html容器目录
# ro 表示容器里不能改,只能在容器外进行更改 https://img-blog.csdnimg.cn/ba61ea7ed09b461f8b1486a8af88590c.png
 2.此时cd /data/html页面,ls里面什么都没有;因为主机是空的,容器也是空
https://img-blog.csdnimg.cn/468ee542b3b344bdae5b37cb6dd4e669.png
3.然后进行追加修改,生成一个index.html页面
https://img-blog.csdnimg.cn/9fe4633ad58d42a0a80549c6880615d6.png
4.此时再去访问,也可以做到修改 
https://img-blog.csdnimg.cn/29251ba2b0f7466f83e8d5bba66296a3.png


4.提交改变:将自己修改好的镜像提交

docker commit CONTAINER ] 1. 通过docker commit --help查看帮助文档
https://img-blog.csdnimg.cn/522053b9bb8246dfbfc11976162beb66.png
 2. 提交并设置 
https://img-blog.csdnimg.cn/e132cfab711b4e4f93709df83e3d36e3.png
 3. 生成一个新的镜像zlnginx
https://img-blog.csdnimg.cn/2ea7f33101d145cfa8f36124d6327d0e.png
 4.以后访问页面,要想访问原来的页面,就启动原来的镜像nginx;要想访问新的页面就启动zlnginx镜像

5. 如何把修改好的镜像(zlnginx)传输到一台新的服务器?

方法1:打成压缩包
1.物理传输:打成压缩包
docker save -o zlnginx.tar zlnginx:v1
# -o 表示指定的压缩包名字,名字是以.tar结尾的压缩包文件 https://img-blog.csdnimg.cn/16794c7c8aaa49a3b883b2a6f905659c.png
2.把压缩包传到机器上后,然后加载
docker load -i zlnginx.tar
# -i 表示后面跟的是要加载的镜像压缩包名 3.此时在docker images就可以看到zlnginx镜像了!

方法2:推送到远程仓库(docker hub),镜像推送
1.需要先注册登录docker hub
https://img-blog.csdnimg.cn/813336e6d36e4b0da52bc0b1afbf7284.png
2. 创建一个仓库(create a Repository)
https://img-blog.csdnimg.cn/cc1e16da2ab040a7be666f422dfe8162.png
3.creat创建以后得到以下界面
https://img-blog.csdnimg.cn/e74805aee2b145bca8c6c38caa1c7449.png

4.根据提示,把新的镜像推送到仓库,注意要带上名字
4.1 先把旧镜像的名字,改成仓库要求的新版本名字
docker tag local-image:tagname new-repo:tagname
# local-image:tagname,本地的镜像和标签,这里就是:zlnginx和v1
#new-repo:tagname,新的名字和版本号,例如:zznginx.v1

# 根据需要自己修改
docker tag zlnginx:v1 1870298479/zznginx:v1.0  这时docker images就能查到1870298479/zznginx:v1镜像https://img-blog.csdnimg.cn/c810b120e8cc4700a6838848304a7335.png
4.2 进行推送
(1)在推送前先进行登录:
docker login (2)然后会让你输入登录的账号密码: 
https://img-blog.csdnimg.cn/fa7ef80d480b45a88661e6dc0a4f34fc.png
(3) 登上以后就可以进行推送
docker push 1870298479/zznginx:v1.0 https://img-blog.csdnimg.cn/d706dd7e6f0b43b89dd29bcd98d441d3.png
 (4)推送完以后进行登出
https://img-blog.csdnimg.cn/8fd1409f9db24dc18869fd3d3f687459.png
 (5)再次回到docker hub页面就可以看到v1版本了
https://img-blog.csdnimg.cn/fc7fa57cce7f4ad8bdaf247ca70728c0.png

(6)点击复制,别的机器就可以直接下载使用了
docker pull 1870298479/zznginx:v1
6.补充常用命令

1.查看容器的运行日志
docker logs 容器名/id 2.进入到某个容器里
docker exec -it 容器id /bin/bash 3.docker经常修改nginx配置文件,所以把nginx配置文件也挂载出来
docker run -d -p 88:80 \
-v /data/html:/usr/share/nginx/html:ro \#nginx页面挂载出来
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \ #nginx配置文件挂载出来
--name mynginx-02 \
nginx 4.把容器指定位置的东西复制出来 
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf  /data/conf/nginx.conf 5. 把外面的内容复制到容器里面
docker cp  /data/conf/nginx.conf  5eff66eec7e1:/etc/nginx/nginx.conf

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Docker命令实战