Docker容器命令
6.1 查看容器 A。查看正在运行的容器
1 2 3 4 5 6 [root@gitlab ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES db71526cf08c seataio/seata-server:1.0.0 "java -Djava.securit…" 4 days ago Up 4 days 0.0.0.0:8091->8091/tcp seata-server 8cbfdf71a92b nacos/nacos-server "bin/docker-startup.…" 12 days ago Up 12 days 0.0.0.0:8848->8848/tcp nacos 900c164303b4 zookeeper "/docker-entrypoint.…" 6 weeks ago Up 2 weeks 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp zookeeper-yz 15f401418436 gitlab/gitlab-ce:latest "/assets/wrapper" 7 weeks ago Up 2 weeks (healthy) 0.0.0.0:2222->22/tcp, 0.0.0.0:8800->80/tcp, 0.0.0.0:8443->443/tcp gitlab-ce
结果描述:
CONTAINER ID
IMAGE
COMMAND
CREATED
STATUS
PORTS
NAMES
容器id
元镜像
创建时间
运行状态
端口映射
容器名
B、查看所有容器
C、查看最后一次运行的容器
D、查看停止的容器
1 docker ps -f status=exited
6.2 创建与启动容器
创建容器常用的参数说明:docker run
参数
描述
–name
容器命名
-t
表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端
-d
守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)
-v
表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录)。可以设置多个
注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。如果出现目录没有权限问题,加上--privileged=true
-p
端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
注意:-v :如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 –privileged=true 来解决挂载的目录没有权限的问题。
1 2 docker run -di --privileged=true --name=mycentos3 \ -v /usr/local/myhtml:/usr/local/myhtml centos:7
A、交互式运行
docker run -it –name=容器名称 镜像名称:标签
注:退出交互式运行(退出时容器停止) exit
1 docker run -it ubuntu /bin/bash
注意:交互式运行退出,容器则停止。
B、守护式方式创建容器: docker run -id –name=容器名称 镜像名称:标签
1 docker run -id ubuntu /bin/bash
注:运行一个需要长时间运行的容器,也可以理解为后台运行 C、登录守护式容器方式:
1 docker exec -it 容器名称 (或者容器ID) /bin/bash
6.3 启动与停止容器 A、启动容器: 1 2 docker start 容器名称(或者容器ID) docker start $CONTAINER_ID/$NAME
B、重启容器 1 docker restart $CONTAINER_ID/$NAME
B、停止容器: 1 2 3 4 5 6 7 # 立即终止 docker stop 容器名称(或者容器ID) docker stop $CONTAINER_ID/$NAME # 延时终止(秒) docker stop -t 20 容器名称(或者容器ID) docker stop -t 20 $CONTAINER_ID/$NAME
C、删除容器 1 2 docker rm 容器名称(或者容器ID) docker rm $CONTAINER_ID/$NAME
扩展:
1 2 3 4 sudo docker rm -f $CONTAINER_ID/$NAME -f: --force=false 强制终止并删除一个运行中的容器 -l: --link=false 删除容器的连接,但保留容器 -v: --volumes=false删除容器所挂载的数据卷
D、查看容器
1 sudo docker inspect $CONTAINER_ID/$NAME
1 sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $CONTAINER_ID/$NAME
E、容器的导入导出
1 docker export 4968e97f588d -ubuntu.tar
1 ubuntu.tar | sudo docker import - yongzheng/ubuntu:v1.0
F、进入容器
1 sudo docker attach $CONTAINER_ID/$NAME
1 sudo docker exec -it $CONTAINER_ID/$NAME /bin/bash
6.4、文件拷贝 6.4.1、将文件拷贝到容器
如果我们需要将文件拷贝到容器内可以使用cp命令
1 2 3 docker cp 需要拷贝的文件或目录 容器名称:容器文件或目录 docker cp nginx.conf $CONTAINER_ID/$NAME:/etc/nginx/nginx.conf
6.4.2、从容器拷贝到宿主机
也可以将文件从容器内拷贝出来
1 2 3 docker cp 容器名称:容器文件或目录 需要拷贝的文件或目录 docker cp $CONTAINER_ID/$NAME:/etc/nginx/nginx.conf nginx.conf