您现在的位置是:首页 >技术杂谈 >docker容器网站首页技术杂谈
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