docker容器相关操作

back

docker容器相关操作


Docker的镜像是用于生成容器的模板,镜像分层的,镜像与容器的关系,就是面向对象编程中类与对象的关系,我们定好每一个类,然后使用类创建对象,对应到Docker的使用上,则是构建好每一个镜像,然后使用镜像创建我们需要的容器。容器相关操作:

容器包含三个状态: 其中:

启动和停止容器

1.以交互方式启动容器: docker run -it --name 容器名称 镜像 /bin bash.
docker run -it --name xx xx /bin bash
2.以守护进程方式启动容器: docker run -d --name 容器名称 镜像
docker start container_id

停止正在运行的容器

# container_id表示容器的id
docker stop container_id

查看所有容器

# 查看所有容器
docker container ls
# 查看所有运行的容器
docker ps

删除容器

不允许删除正在运行的容器,因此如果要删除的话,就必须先停止容器。
# container_id表示容器id,通过docker ps可以看到容器id
docker rm container_id 
# 删除所有容器
docker rm $(docker ps -q)
# 删除所有退出的容器
docker container prune

进入容器

# 进入容器,container_id表示容器的id,command表示Linux命令,如/bin/bash
docker exec -it container_id command

案例-创建并运行一个容器

创建并运行nginx容器的命令:
docker run --name containerName -p 80:80 -d nginx
命令解读:

这里的`-p`参数,是将容器端口映射到宿主机端口。

默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。

现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了

案例-进入容器,修改文件

需求:进入Nginx容器,修改HTML文件内容,添加“Welcomde to Docker!”

提示:进入容器要用到docker exec命令。

步骤

1)进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it mn bash

命令解读:

2)进入nginx的HTML所在目录 /usr/share/nginx/html

容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:

nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。

查看DockerHub网站中的nginx页面,可以知道nginx的html目录位置在`/usr/share/nginx/html`

我们执行命令,进入该目录:

cd /usr/share/nginx/html
3)修改index.html的内容 容器内没有vi命令,无法直接修改,我们用下面的命令来修改:
sed -i -e 's#Welcome to nginx#Welcome to Docker!#g' -e 's#<head>#<meta charset="utf-8">#g' index.html
在浏览器访问自己的虚拟机地址,例如我的是:http://192.168.254.188,即可看到结果: