待手绾青丝

待手绾青丝

待手绾青丝

庭中三千梨花树,再无一朵入我心。 心中只你一朵,似在心中,不在心中,可望可念可想不可及。

109 文章数
2 评论数
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

第四篇_Docker容器命令

2021-04-25 / 0 评论 / 1781 阅读 / 0 点赞

docker容器命令

一、容器介绍

1、容器就是对外提供服务的一个实例。
2、容器启动的必要条件:容器内至少有一个进程运行在前台

二、容器命令

1、docker ps查看容器列表

# 格式	
	docker ps [参数]
	
# 默认
	docker ps 		# 查看正在运行的容器列表

# 参数
	-a : 查看系统中所有的容器。
	-q : 仅显示容器的ID
	
# 实例

2、docker run创建容器

# 格式
	docker run [参数] [镜像名称] [运行容器的启动命令]

参数

1)-d 守护进程方式运行

# 格式
	docker run -d [镜像名称] [cmd]
	
# 实例
	docker run -d nginx

2)--name指定容器名称

# 格式
	docker run -d --name [容器名称] [镜像的名称] [cmd]
	
# 实例
	docker run -d --name nginx nginx

3)-p指定端口映射

# 格式
	docker run -d -p 宿主机IP:宿主主机端口:容器内端口 [镜像的名称] [cmd]
	不使用宿主机IP默认本机全网段端口开放
# 实例
	端口映射
	docker run -d -p 80:80 nginx
	docker run -d -p 10.0.0.210:81:80 nginx
	
	端口范围映射
	docker run -d -p 81-89:81-89 nginx
	
	使用UDP协议做端口映射
	docker run -d -p 90:80/udp nginx
	
	使用UDP协议做端口随机映射
	docker run -d -p ::80/udp nginx
	
	随机端口映射
	docker run -d -p ::80 nginx

4)-P随机端口映射

# 格式
	docker run -d -P [镜像名称] [cmd]
	
# 实例
	docker run -d -P nginx

5)-it以交互式方式打开一个伪终端

-i		#以交互式运行容器
-d		#创建一个为终端

# 格式
	docker run -it [镜像名称] [cmd]
	
# 实例
	以交互式方式打开一个伪终端
	docker run -it nginx bash
	以交互式方式打开一个终端在后台运行
	docker run -dit centos

6)-v 给容器挂载数据卷

# 格式
	docker run -v 宿主主机绝对目录:容器内目录  [镜像名称] [cmd]

	在宿主机创建一个固定名字的目录,来持久化容器的目录下的数据
	docker run -v 宿主主机绝对目录:容器内目录  [镜像名称] [cmd]
	
# 实例
	docker run -dit -v /root/test:/root centos7
	docker run -dit -v /root/test1:/root centos7
	

7)--rm容器生命周期结束立即删除

# 格式
	docker run --rm [镜像名称] [cmd]
	
# 实例
	docker run -d --rm nginx

8)-e在容器中创建一个环境变量

#格式
	docker run -e 环境变量 -d [镜像名称] [cmd]
	
# 实例
	[root@docker01 ~]# docker run -it -e NAME=abc centos:7
    [root@5288ff59ea57 /]# printenv
    NAME=abc

9)--link连上一个容器,实现网络互通

# 格式
	docker run --link 被连接的容器的名称:连接别名 [镜像名称] [cmd]
	
# 实例
	[root@docker01 ~]# docker run -it --link dc1dab96297a:nginx centos
    [root@6044ef9f8bbe /]# ping nginx
    64 bytes from nginx (172.17.0.5): icmp_seq=1 ttl=64 time=0.158 ms

10)-h设置容器主机名

# 格式
	docker run -h "主机名"  [镜像名称] [cmd]
	
# 实例
	[root@docker01 ~]# docker run -it -h "xiaowu" nginx bash
root@xiaowu:/#

补充

容器想要放在后台一直运行的化,那么容器的初始命令,必须夯住(前台运行),否则容器就会退出.

前台运行
nginx -g 'daemon off;'
/usr/sbin/php-fpm --nodaemonize
/usr/sbin/sshd -D

3、docker create创建容器不启动

docker create [参数] [镜像名称] [运行容器的启动命令]
#参数
大部分参数与docker run相同

区别:
1、无-d参数
# docker run和docker create运行流程
1、检查本地是否用指定镜像,如果没有则去对应的仓库下载镜像
2、启动容器,如果指定了命令则使用指定的命令,如果没有则使用默认的命令
3、返回容器ID

4、start/stop启停容器

# 启动(该容器必须是系统已经存在的容器)
	docker start [容器的ID|名称]
	
# 停止
	docker stop [容器的ID|名称]

5、docker rm删除容器

# 格式
	docker rm [容器名称|ID]

# 参数
	-f : 强制删除
	docker rm -f [容器名称|ID]

# 清空容器
	正在运行的不会删除
	docker rm $(docker ps -a -q)
	正在运行的也会被删除
	docker rm -f $(docker ps -a -q)

6、docker inspect查看容器信息

# 格式
	docker inspect [容器名称|ID]

#查看容器运行状态
	#格式
	docker inspect -f '{{信息名称}}' [容器名称|ID]

	#实例
	docker inspect -f '{{.State.Running}}' nginx

7、docker cp复制命令

#宿主机文件复制到容器内
	docker cp [宿主主机文件路径]  容器ID:容器内路径

2、复制到容器外
	docker cp 容器ID:容器内路径 [宿主主机文件路径]

8、docker exec/attach进入容器

1. exec : 进入正在运行的容器(分配一个新终端)(官方推荐)
	docker exec [参数] [容器的名称|ID] [cmd]
	#实例
		docker exec -it nginx bash

2. attach : 进入正在运行的容器(使用相同的终端)
	docker attach [容器ID|名称]
	
	直接离开会关掉容器
	偷偷离开的快捷键ctrl +p,ctrl +q

9、其他进入容器的方法

3、nsenter : 建立一个管道连接上容器主ID
	nsenter --target $( docker inspect -f {{.State.Pid}} [容器名|ID]) --mount --uts --ipc --net --pid

4、ssh : 通过ssh连接  (麻烦不推荐)

10、保存容器为镜像commit

# 保存正在运行的容器直接为镜像
# 格式:
	docker commit [容器ID|容器名称] 保存名称:版本
	
# 参数
	-a 镜像作者
	-p 提交期间暂停容器
	-m 容器说明

# 实例
    [root@docker01 ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                   NAMES
    ebb852aefe0a   nginx     "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   0.0.0.0:49153->80/tcp   wizardly_shamir
    [root@docker01 ~]# docker commit -a "xiaowu" -m "小武的容器" -p ebb852aefe0a test:v1
    sha256:a9297902755a4ede3ce38c2717515626c678b6deae50206071a0a29ebcd208a9
    [root@docker01 ~]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
    test         v1        a9297902755a   4 seconds ago   133MB
    alpine       latest    7731472c3f2a   2 months ago    5.61MB
    nginx        latest    f6d0b4767a6c   2 months ago    133MB

11、保存容器为镜像包(export/import)

# export保存正在运行的容器为镜像包
## 保存容器为镜像
	docker export [容器的ID] > [包名称]
	
# 实例
	[root@docker01 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                   NAMES
ebb852aefe0a   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   0.0.0.0:49153->80/tcp   wizardly_shamir
[root@docker01 ~]# docker export ebb852aefe0a > nginx:v1.tar
[root@docker01 ~]# ll
-rw-r--r--  1 root root 135403008 Mar 18 21:05 nginx:v1.tar
# import 将镜像包解为镜像
## docker import [包名称] [自定义镜像名称]
	# 实例
	[root@docker01 ~]# docker import nginx\:v1.tar  nginx:v2
    sha256:59bde51898fa443281782320b194d5e139c37ece32528843bb26d444800265ab
    [root@docker01 ~]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
    nginx        v2        59bde51898fa   10 seconds ago   131MB
    test         v1        a9297902755a   6 minutes ago    133MB
    alpine       latest    7731472c3f2a   2 months ago     5.61MB
    nginx        latest    f6d0b4767a6c   2 months ago     133MB

文章不错,扫码支持一下吧~
上一篇 下一篇
评论
最新回复
文章目录
每日一句