您现在的位置是:首页 >技术杂谈 >docker容器网站首页技术杂谈

docker容器

赵同学& 2024-09-10 12:01:05
简介docker容器

docker容器

一 docker常用的命令

启动容器:

systemctl start docker

停止docker:

systemctl stop docker

重启docker:

systemctl restart docker

查看docker状态:

systemctl status docker

查看正在运行的容器

docker ps

查看所有容器

docker ps –a

查看最后一次运行的容器

docker ps –l

在这里插入图片描述

运行一个容器:

创建容器命令:docker run

-i:表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

-it 表示 与容器进行交互式启动

-d 表示可后台运行容器 (守护式运行)

–name :为创建的容器命名。

交互式方式创建容器

docker run -it --name=容器名称 镜像名称:标签
docker run -it --name=nginx04 nginx

注意:ctrl+c 退出就不运行了

在这里插入图片描述

后台守护式方式创建容器:

docker run -d --name=容器名称 镜像名称:标签
docker run -d --name=nginx05 nginx
#这种拿到是容器的id

在这里插入图片描述

删除一个容器:

docker rm -f nginx01

如果我想运行一个容器,并且要进入到容器里面:

docker run -it --name=容器名称 镜像名称:标签 /bin/bash
docker run -it --name=nginx01 nginx /bin/bash

退出当前容器

exit

记住操作完不用的话记得删除,以上的都删除

停止容器:

docker stop 容器名称(或者容器ID)
docker stop nginx01

重启容器:

docker restart nginx01

杀死一个容器

相当于停止运行

docker kill nginx01

在这里插入图片描述

容器端口与服务器端口映射

命令:

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口

-p 宿主机端口:容器端口
  • 比如:使用 redis 镜像 尝试 将6379端口 映射到服务器的8888
  • 如果成功了的话 那么咱们访问服务器的8888端口就会访问到咱们的 docker 中 的容器 redis002
  • -p 8888:6379 解析 将容器内部的 6379端口与docker 宿主机(docker装在哪太服务器 那台服务器 )8888 端口进行映射 那通过外部访问宿主机8888端口 即可访问到 docker 容器 6379 端口了
docker run -it --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash
docker run -d --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash

容器文件拷贝

docker cp 命令用于在容器和本地文件系统之间复制文件/文件夹。

#从主机上拷贝文件到容器内

docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp foo.txt nginx01:/home/foo.txt
#进入容器查看是否存在

在这里插入图片描述

#从容器里面拷贝文件/目录到本地一个路径

docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp Name:/container_path to_path  
#例如:
docker cp tomcat:usr/local/tomcat/README.md ./

在这里插入图片描述

进入已运行的守护式容器方式:

docker exec -it 容器名称 (或者容器ID)  /bin/bash
docker exec -it nginx01  /bin/bash

查看容器日志

docker logs -f 容器名称
docker logs -f nginx01

docker logs -f --tail=要查看末尾多少行 默认all 容器ID

在这里插入图片描述

运行nginx 进行测试查看:

docker run -d --name nginx01 -p 9091:80 nginx /bin/bash

在这里插入图片描述

使用浏览器访问:当前虚拟机的ip+9091端口号

192.168.23.121:9091

这时候可以查看日志信息了:

开机容器自动重启

使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

docker run -d  -p 9091:80 --restart=always --name nginx01 nginx 

在这里插入图片描述

命令:reboot 重启虚拟机

目录挂载

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录,

例如:把usr下local文件下的myhtml挂载到ng容器 home文件下

docker run -di -v /usr/local/myhtml:/home/myhtml --name=ng nginx

如果你共享的是多级的目录,可能会出现权限不足的提示。

这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

cat myhtml进入查看

也可以直接挂载文件夹:

docker run -di -v /usr/local:/home/local --name=ng nginx

更换容器名

docker rename 容器ID/容器名 新容器名

在这里插入图片描述

环境变量设置

docker run -d -e name=henan -e city=zhengzhou --name=ng nginx

进入查看:

docker exec -it ng /bin/bash
#输入:
env查看信息

env 命令查看配置

env

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。