CC00106.CloudKubernetes——|KuberNetes&Docker操作.V04|——|docker命令.v03|启动镜像|

一、启动镜像
### --- docker镜像启动方式

~~~     # 前台启动:
~~~     自己调试的时候会采用前台启动,比如自己做好了一个镜像,
~~~     需要验证这个镜像是不是对的,需要前台启动去调试。
~~~     # 后台启动:
~~~     做好的镜像,要发布到生产环境去;肯定是后台启动;
~~~     后台启动docker是后台启动,但是进程时前台启动。
~~~     所有的进程启动都是以前台启动为准,
~~~     比如nginx前台启动:Nginx -g daemon off,nginx是前台启动。
### --- 下载镜像并查看版本
~~~     # 准备centos8的镜像

[root@k8s-master01 ~]# docker pull centos:8
~~~     # 查看镜像版本

[root@k8s-master01 ~]# docker images
centos                                                            8         300e315adb2f   4 months ago    209MB
### --- 前台运行容器;使用默认端口启动
~~~     # 前台启动一个centos8的容器

[root@k8s-master01 ~]# docker run -ti centos:8 bash // -ti指这个终端
[root@dd5079a619dd /]#                              // 已进入容器内部
~~~     # 前台启动一个nginx容器:若是有这个镜像会直接启动,若是没有这个镜像,会有一个拉取镜像的动作;安装nginx:1.14.2
~~~     注:参数是没有任何东西的,可以沟通过浏览器去访问,看是否可以访问,若是可以访问,说明前台启动启动成功。
~~~     注:通过Chrome访问后打印日志

[root@k8s-master01 ~]# docker run -ti -p 12345:80 nginx:1.14.2
192.168.1.104 - - [12/Apr/2021:10:10:58 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" "-"
2021/04/12 10:10:59 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.1.104, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.1.11:12345", referrer: "http://192.168.1.11:12345/"
192.168.1.104 - - [12/Apr/2021:10:10:59 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://192.168.1.11:12345/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" "-"
### --- 前台运行容器;指定端口
~~~     # 指定端口启动容器
~~~     # 通过Chrome访问前台启动nginx:http://192.168.1.11:12345/

[root@k8s-master01 ~]# docker run -ti -p 12345:80 nginx:1.14.2 nginx                //最后一个nginx前台启动命令
[root@k8s-master01 ~]# docker ps -a
4e09ca34a853   nginx:1.14.2                                                          "nginx"                  7 seconds ago   Exited (0) 5 seconds ago               nice_zhukovsky

### --- 后台启动一个容器
~~~     后台启动一个nginx镜像:加入-d后台启动
~~~     注:浏览器还是可以访问的。
### --- 通过Chrome访问前台启动nginx:http://192.168.1.11:12345/

[root@k8s-master01 ~]# docker run -tid -p 12345:80 nginx:1.14.2                     //加入了-d daemon of后期启动,进程一直都在,所以不会退出。
55bc32a48f56ac4a1bca47a41493cc4bcedce643e035bfa156b8c17d4eae086e
[root@k8s-master01 ~]# docker ps 
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED         STATUS         PORTS                   NAMES
55bc32a48f56   nginx:1.14.2                                                          "nginx -g 'daemon of…"   5 seconds ago   Up 3 seconds   0.0.0.0:12345->80/tcp   confident_torval
### --- 后台启动
~~~     # 后台启动一个容器;-d:后台启动一个镜像
~~~     # 注:因为这个容器没有前台启动的进程,所以运行之后是退出状态,是一个Exited状态。

[root@k8s-master01 ~]# docker run -d centos:8 bash
a40dc5602d9a84f80a9d610af32365aa8d8ccfe27d6dc261809aad542d0ab92c
[root@k8s-master01 ~]# docker ps -a
dd5079a619dd   centos:8                                                              "bash"                   6 minutes ago    Exited (0) 4 minutes ago              determined_cray

四、容器操作:

### --- 查看指定容器的日志
~~~     # 查看运行中的容器

[root@k8s-master01 ~]# docker ps
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED         STATUS         PORTS     NAMES
28a25f7e972f   nginx:1.14.2                                                          "sh"
~~~     # 查看nginx的日志
~~~     注:日志其实是放在这个目录下 /var/lib/docker/containers,和这个日志是一致的,不过是做了格式化的。

[root@k8s-master01 ~]# docker logs -f 28a25f7e972f  // -f是动态的查看日志,
# echo $?                                           // 之前的输出操作
~~~     # 通过本地查看日志

[root@k8s-master01 ~]# cat /var/lib/docker/containers/28a25f7e972f55a745de768bd658505636752f074630659fad3d739a32b3e32e/28a25f7e972f55a745de768bd658505636752f074630659fad3d739a32b3e32e-json.log
### --- docker ps查看正在运行的容器
~~~     # 查看正在运行的容器

[root@k8s-master01 ~]# docker ps
28a25f7e972f   nginx:1.14.2                                                          "sh"                     12 minutes ago   Up 12 minutes   80/tcp    eager_vaughan
~~~     # 查看所有的容器;不管是运行的,报错的,退出的都可以查看到。

[root@k8s-master01 ~]# docker ps -a
28a25f7e972f   nginx:1.14.2                                                          "sh"                     12 minutes ago   Up 12 minutes   80/tcp    eager_vaughan
~~~     # 查看正在运行的容器的ID号

[root@k8s-master01 ~]# docker ps -q
28a25f7e972f
[root@k8s-master01 ~]# docker ps -aq                                                // 加a是所有的
a40dc5602d9a
### --- 进入容器exec
~~~     # 进入容器

[root@k8s-master01 ~]# docker ps 
28a25f7e972f   nginx:1.14.2                                                          "sh"                     15 minutes ago   Up 14 minutes   80/tcp    eager_vaughan
[root@k8s-master01 ~]# docker exec -ti 28a25f7e972f sh          // 已进入到容器内部
### --- 删除本机的镜像文件
~~~     # 删除容器的镜像

[root@k8s-master01 ~]# docker images
nginx                                                             latest    519e12e2a84a   2 days ago      133MB
[root@k8s-master01 ~]# docker rmi 519e12e2a84a
Untagged: nginx:latest
Untagged: nginx@sha256:6b5f5eec0ac03442f3b186d552ce895dce2a54be6cb834358040404a242fd476
Deleted: sha256:519e12e2a84a9eb18094635ae1edfd97b26f95dbc66e317eefb657a1cb08c8dc
Deleted: sha256:11d4f30257b6da786a7100dbb0d482794591961edc9d7d68697712d5aaab3906
Deleted: sha256:030d2cbb296e4003ab316bf72507169cecade615c97b4d700a28f098c473bc0f
~~~     # 删除容器

[root@k8s-master01 ~]# docker ps -a
4e09ca34a853   nginx:1.14.2                                                          "nginx"                  19 minutes ago   Exited (0) 19 minutes ago                             nice_zhukovsky
[root@k8s-master01 ~]# docker rm 4e09ca34a853
4e09ca34a853
[root@k8s-master01 ~]# docker ps -a |grep 4e09ca34a853
[root@k8s-master01 ~]# docker rm 'docker ps -a       // 删除所有的容器,命令比较危险,谨慎使用。
### --- 停止容器
~~~     # 停止某一个容器

[root@k8s-master01 ~]# docker ps 
55bc32a48f56   nginx:1.14.2                                                          "nginx -g 'daemon of…"   18 minutes ago   Up 18 minutes   0.0.0.0:12345->80/tcp   confident_torvalds
[root@k8s-master01 ~]# docker stop 55bc32a48f56
55bc32a48f56
[root@k8s-master01 ~]# docker ps |grep 55bc32a48f56
~~~     # 启动某一个容器
~~~     注:显示是up状态

[root@k8s-master01 ~]# docker start 55bc32a48f56
55bc32a48f56
[root@k8s-master01 ~]# docker ps  |grep 55bc32a48f56
55bc32a48f56   nginx:1.14.2                                                          "nginx -g 'daemon of…"   20 minutes ago   Up 7 seconds   0.0.0.0:12345->80/tcp   confident_torvalds
五、容器中拷贝文件
### --- 拷贝文件到容器中,
### --- 通过Chrome访问nginx容器查看拷贝文件是否生效
~~~     # 把本地文件拷贝到容器里面

[root@k8s-master01 ~]# docker ps 
55bc32a48f56   nginx:1.14.2       "nginx -g 'daemon of…"   2 minutes ago   Up 2 minutes   0.0.0.0:12345->80/tcp   confident_torval
[root@k8s-master01 ~]# docker exec -ti 55bc32a48f56 bash    
root@55bc32a48f56:/# cd /usr/share/nginx/html/      // 官方nginx发布目录在这个位置
~~~     # 从宿主机拷贝一个文件到nginx容器的发布目录下写入一个html文件

[root@k8s-master01 ~]# echo "test cp" >index.html
~~~     # 从宿主机拷贝文件到nginx容器的发布目录下

[root@k8s-master01 ~]# docker cp index.html 55bc32a48f56:/usr/share/nginx/html/     //index.html宿主机文件+容器+发布目录

~~~     # 把容器里面的文件拷贝到本地主机
[root@k8s-master01 ~]# docker cp 55bc32a48f56:/usr/share/nginx/html/index.html .
 
~~~     # 在本地可以查看到从nginx容器拷贝出来的文件
[root@k8s-master01 ~]# ll                   
-rw-r--r--  1 root root         8 Apr 12 18:23 index.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值