[toc]
docker容器操作
1.docker运行容器
1.1 docker后台运行容器
//docker运行一个容器
[root@docker01 ~]# docker run -d -p 80:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
6ae821421a7d: Pull complete
da4474e5966c: Pull complete
eb2aec2b9c9f: Pull complete
Digest: sha256:dd2d0ac3fff2f007d99e033b64854be0941e19a2ad51f174d9240dda20d9f534
#参数说明
run 创建并运行一个容器
-d 后台运行
-p 端口映射 宿主机端口:容器端口
nginx docker镜像名称
//访问容器
访问宿主机IP:80端口
1.2 docker交互式运行容器
//docker交互式运行容器
[root@docker1 ~]# docker run -it --name nginx nginx /bin/bash
root@07c25f8aa98b:/#
#参数shuoming
-it 分配交互式终端
--name 指定容器的名字
/bin/bash 覆盖容器的初始命令
第一个nginx 容器名称
第二个nginx 镜像名称
2.docker停止容器
命令:docker stop 容器ID或容器名称
//查看容器,此时nginx容器正在运行
[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5008e3abc3c nginx "nginx -g 'daemon of…" 8 seconds ago Up 7 seconds 0.0.0.0:80->80/tcp elated_hermann
//停止容器,停止容器可以加容器的ID或者容器名字
[root@docker1 ~]# docker stop e5008e3abc3c
e5008e3abc3c
//再次查看,可以看到容器已经停止
[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5008e3abc3c nginx "nginx -g 'daemon of…" About a minute ago Exited (0) 2 seconds ago elated_hermann
3.docker进入容器
3.1 docker进入容器方法
目的
- docker进入容器(为了调试、排错)
方法
- docker exec -it 容器ID或容器名称 /bin/bash #会分配一个新的终端tty
- docker attach #使用同一个终端
- nsenter 用的少 #需要安装util-linux
3.2 示例
exec进入容器
//运行一个容器
[root@docker1 ~]# docker run -d nginx
47a36ef42fb743a4c28ac8d3c82cfa1947698c7c0a74a5ccb59815b959cb7a48
//查看容器
[root@docker1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
47a36ef42fb7 nginx "nginx -g 'daemon of…" 8 seconds ago Up 7 seconds 80/tcp zen_spence
//根据容器ID进入容器
[root@docker1 ~]# docker exec -it 47a36ef42fb7 /bin/bash
root@47a36ef42fb7:/# cat /etc/issue
Debian GNU/Linux 9 \n \l
//显示容器详细信息
[root@docker1 ~]# docker ps --no-trunc
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
47a36ef42fb743a4c28ac8d3c82cfa1947698c7c0a74a5ccb59815b959cb7a48 nginx "nginx -g 'daemon off;'" 5 minutes ago Up 5 minutes 80/tcp zen_spence