Docker容器操作

Docker容器操作

一、查看容器

查看正在运行的容器
docker ps
查看所有容器
docker ps –a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited

二、创建容器

1、create创建

创建一个新的容器但不启动它

docker create -参数 --name=容器名  镜像名:tag  启动指令

如:
docker create -i --name=mycentos1 centos:7  /bin/bash

创建后查看ps -a 发现STATUAS为Created



参数:
-i:表示运行容器
-t:表示容器启动后会分配一个伪终端。
--name :为创建的容器命名。


-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

2、run创建并运行

创建容器并直接运行。

如果启动指令是一个能夯住的命令,那么容器在启动的时候会一直运行等待指令。比如/bin/bash

否则,容器一启动运行一下命令就会停止。比如 ps -a

docker run -参数 --name=容器名  镜像名:tag  启动指令

docker run -id --name=p1 python:3.6  # 后台运行,用exec进,退出来继续运行
docker run -idt(和-id一样) --name=p2 python:3.6

docker run -it --name=p2 python:3.6  # 直接开启伪终端运行COMMAND.exit退出后容器停止运行。


参数:
-i:表示运行容器
-t:表示容器启动后会分配一个伪终端。此时退出(exit),容器直接停止。
--name :为创建的容器命名。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。之后exec进出在退出(exit),容器不会停止。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

三、运行和操作容器

1、启动已经创建好的容器

只是启动容器,并不能进入容器执行命令。

# start启动 已经创建好的容器
docker start 容器id/容器名

2、在运行的容器中执行命令

exec在运行的容器操作系统中执行命令。启动参数要有i。

# exec在运行的容器操作系统中执行命令
docker exec -参数(要有i) 容器id/容器名 操作命令
docker exec -it 85768eb78045 /bin/bash # 进入该容器控制台

3、连入正在运行的容器

# attach:连到第一个进程上
docker attach 容器id/容器名

# ssh连接(容器安装ssh服务)

4、停止和删除容器

# stop停止 正在运行的容器
docker stop 容器id/容器名


# 容器删除
docker rm 容器id/容器名字

四、文件拷贝

# 从宿主机copy文件到容器
docker cp 需要拷贝的文件或目录 容器名称:容器目录

# 把当前路径下的1.txt拷贝到容器的/home路径下
docker cp 1.txt c2:/home  

---------------------------------------------
# 从容器copy文件到宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或目录

# 把容器home路径下的1.txt拷贝到当前路径下
docker cp centos7:/home/1.txt 1.txt  

五、容器映射

1、目录映射

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

docker run -参数 --name=容器名 -v 宿主目录:容器目录 镜像名:tag

docker run -di --name=mycentos -v /root/test:/home centos:7

2、端口映射

将宿主机的端口与容器内的端口进行映射,这样我们就可以通过访问宿主机的某个端口而去访问容器的端口。

docker run -参数 --name=容器名 -p 宿主端口:容器端口 镜像名:tag

# 访问宿主的8888端口即可连接上容器的6379端口的redis服务
docker run -di --name=myredis -p 8888:6379 redis

六、查看容器信息

docker inspect 容器id/容器名字   # 信息很多,不方便看

# 这样可以单独查看IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql

七、删除容器

docker rm 容器id/容器名字
原文地址:https://www.cnblogs.com/bowendown/p/12609644.html