1.接上篇博文,先讲一下如何利用docker来对容器进行一个守护进程的启动,以及如何进入日期,如下:
[root@cjr ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 3 years ago 231MB
[root@cjr ~]# docker run -td --name test centos:latest
1b0cfe7658a202191a1aad90383caee37068396be41ae7889404caca77d24a84
[root@cjr ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b0cfe7658a2 centos:latest "/bin/bash" 3 seconds ago Up 1 second test
[root@cjr ~]# docker exec -it test /bin/bash
[root@1b0cfe7658a2 /]# exit
exit
[root@cjr ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b0cfe7658a2 centos:latest "/bin/bash" 18 seconds ago Up 17 seconds test
-
docker run
:这是 Docker 命令,用于创建并启动一个新的容器。 -
-t
:为容器分配一个伪终端(pseudo-TTY)。 -
-d
:以“分离模式”(detached mode)运行容器,即容器在后台运行。 -
--name test
:为容器指定一个名称,这里是test
。 -
centos:latest
:指定使用的镜像,这里是 CentOS 的最新版本。 -
命令执行后,Docker 会返回一个容器的唯一 ID:
1b0cfe7658a202191a1aad90383caee37068396be41ae7889404caca77d24a84
。 -
docker ps
:列出当前正在运行的容器。 -
输出显示了一个正在运行的容器,其
CONTAINER ID
是1b0cfe7658a2
,使用的镜像是centos:latest
,容器名称为test
,状态为Up 1 second
(已运行 1 秒)。 -
docker exec
:在正在运行的容器中执行命令。 -
-it
:以交互式终端模式运行命令。 -
test
:指定要进入的容器名称。 -
/bin/bash
:在容器中启动一个 Bash shell。 -
执行后,你会进入容器的命令行界面,提示符变为
[root@1b0cfe7658a2 /]#
,表示你现在在容器内部。
[root@cjr ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b0cfe7658a2 centos:latest "/bin/bash" 3 minutes ago Up 3 minutes test
You have new mail in /var/spool/mail/root
[root@cjr ~]# docker stop test
test
[root@cjr ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@cjr ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b0cfe7658a2 centos:latest "/bin/bash" 3 minutes ago Exited (0) 7 seconds ago test
[root@cjr ~]# docker start test
test
[root@cjr ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b0cfe7658a2 centos:latest "/bin/bash" 3 minutes ago Up 6 seconds test
[root@cjr ~]# docker rm -f test
test
You have new mail in /var/spool/mail/root
上文是关于docker命令的一些基本命令,启动、停止、删除、查看历史运行的容器、查看正在运行的容器
二、docker实战运用,部署一个nginx服务
首先让我们有个思路,通过什么镜像去部署?
有两个选择,一个可以直接通过nginx镜像,另外一个可以通过操作系统,然后在操作系统里面进行一个部署,我们选择使用操作系统
思路:利用centos镜像启动一个容器,可以理解为虚拟机,然后再这个虚拟机里面下载nginx服务,在进行一个页面编写用来检测是否部署成功
[root@cjr ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 3 years ago 231MB
[root@cjr ~]# docker run -itd --name nginx -p 80 centos:latest /bin/bash
d5a3db6f7af9a34fb5c22ca5e258eafe564dba9c1ab7b4cd47ae3d4035d18dd5
[root@cjr ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5a3db6f7af9 centos:latest "/bin/bash" 49 seconds ago Up 48 seconds 0.0.0.0:32768->80/tcp, :::32768->80/tcp nginx
You have new mail in /var/spool/mail/root
[root@cjr ~]# docker exec -it nginx /bin/bash
由于centos镜像已停用,我将镜像换成了rocklinux:8.9,不过命令都是一样的
[root@4948a229a8d0 /]# mkdir -p /var/www/html
[root@4948a229a8d0 /]# vi /var/www/html/index.html
[root@4948a229a8d0 /]# cat /var/www/html/index.html
hello world
修改一下nginx配置文件里面root的默认路径
有问题的话可以私信我询问