docker的基本命令及操作逻辑

                  docker的基本命令及操作逻辑

image:镜像

container:容器

registry:仓库

docker hub ----> 公共的仓库

查找php的镜像

[root@localhost /]# docker search php

docker的基本命令及操作逻辑_第1张图片

查看docker详细信息

[root@localhost /]# docker info

docker的基本命令及操作逻辑_第2张图片

或者看看加速器

docker的基本命令及操作逻辑_第3张图片

查找httpd的镜像

[root@localhost /]# docker search httpd

docker的基本命令及操作逻辑_第4张图片

下载或拉取httpd的镜像

[root@localhost /]# docker pull httpd

docker的基本命令及操作逻辑_第5张图片

导出镜像,并保存镜像为tar包

保存的名称为my-httpd.tar

[root@localhost /]# docker save --output my-httpd.tar httpd

docker的基本命令及操作逻辑_第6张图片

查看镜像

[root@localhost /]# docker images

或者

[root@localhost /]# docker image ls

latest:最新的版本,但不是绝对最新

完整的镜像名称----》》 image:latest

如果版本号默认是一latest为结尾,解压省略不写

删除镜像

[root@localhost /]# docker rmi httpd:latest

[root@localhost /]# docker images

docker的基本命令及操作逻辑_第7张图片

加载一个镜像

1)上传包

导入镜像包

[root@localhost /]# docker load --input my-httpd.tar

[root@localhost /]# docker images

docker的基本命令及操作逻辑_第8张图片

运行镜像并后台运行

[root@localhost /]# docker run -itd --name test centos

查看镜像

[root@localhost /]# docker ps

进入容器(必须加/bin/bash)

[root@localhost /]# docker exec -it test /bin/bash

另一个命令进入容器,(可以不加/bin/bash但是退出之后。容器会停止运行)

[root@localhost /]# docker attach test

注意:exec进入容器会开启新的进程,attach不会开启新的进程

Ctrl +p Ctrl+q:如果是attach进入的容器Ctrl +p Ctrl+q退出容器,并保持容器运行

查看当前进程号

[root@localhost /]# echo $$

18260

使用exec开启容器

[root@localhost /]# docker start test

test

[root@localhost /]# docker exec -it test /bin/bash

[root@67c9b9de0743 /]# echo $$

使用attach开启容器

[root@localhost /]# docker attach test

[root@67c9b9de0743 /]# echo $$

1

使用快捷键退出容器并保持容器运行,Ctrl +p Ctrl+q

docker的基本命令及操作逻辑_第9张图片

关闭容器

[root@localhost /]# docker stop test

删除所有容器,(跟 rm  -rf /* 一样)

[root@localhost /]# docker ps -a -q | xargs docker rm -f

关闭所有容器和开启

[root@localhost /]# docker run  -itd centos

567d5cd9623bb49b5b86eb07aa50260b6366dcfa6392a50e0e5d255ea1a3dec7

[root@localhost /]# docker ps -a -q | xargs docker stop

567d5cd9623b

b0981b364a78

[root@localhost /]# docker ps -a -q | xargs docker start

567d5cd9623b

b0981b364a78

查看容器的日志,(-f:动态的显示)

[root@localhost /]# docker run  -itd -p81:80 --name my-httpd httpd

[root@localhost /]# curl 127.0.0.1:81

root@localhost /]# docker logs my-httpd    

docker的基本命令及操作逻辑_第10张图片

保持容器处于开启状态,(docker 服务重启之后)

[root@localhost /]# docker run -itd --name zhou --restart=always httpd

基于centos镜像部署安装一个nginx web服务器

运行一个容器

[root@localhost /]# docker run -itd --name web centos:latest

上传nginx

docker的基本命令及操作逻辑_第11张图片

将nginx传给容器

[root@localhost /]# docker cp nginx-1.17.3.tar.gz web:/

安装依赖包

[root@d2554025e819 /]# yum -y install gcc openssl-devel pcre-devel zlib-devel make

安装nginx

[root@d2554025e819 /]# useradd -M -s /sbin/nologin nginx

[root@localhost /]# tar zxf nginx-1.17.3.tar.gz

[root@localhost /]# cd nginx-1.17.3/

[root@d2554025e819 nginx-1.17.3]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

[root@d2554025e819 nginx-1.17.3]# make && make install

[root@d2554025e819 /]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

[root@d2554025e819 /]# nginx

访问一下

docker的基本命令及操作逻辑_第12张图片

在宿主机上访问容器的80端口

docker的基本命令及操作逻辑_第13张图片

在宿主机上访问容器的80端口

docker的基本命令及操作逻辑_第14张图片

更改一下网页

[root@d2554025e819 /]# cd /usr/local/nginx/html

[root@d2554025e819 html]# echo this is http > index.html

[root@d2554025e819 html]# curl 172.17.0.2

this is http

将容器制作成镜像

语法: commit  容器名称   生成镜像的名称(如果不加:v1.0则会默认生成latest)

[root@localhost /]# docker commit web my-nginx:v1.0

查看镜像

[root@localhost /]# docker images

docker的基本命令及操作逻辑_第15张图片

基于刚刚的镜像生成容器

[root@localhost /]# docker run -itd --name web01 my-nginx:v1.0

[root@localhost /]# docker exec -it web01 /bin/bash

[root@d69f4430565c /]# nginx

docker的基本命令及操作逻辑_第16张图片

追加网页

[root@d69f4430565c /]# echo 123 >> /usr/local/nginx/html/index.html

[root@d69f4430565c /]# curl 172.17.0.3

this is http

123

基于刚刚更改的网页生成镜像

[root@localhost /]# docker commit web01 my-nginx:2.0

docker的基本命令及操作逻辑_第17张图片

注意:就算名称一样,后面的版本号不一样也可以同时存在

docker操作逻辑图

docker的基本命令及操作逻辑_第18张图片

你可能感兴趣的:(Docker)