关于Docker容器(linux版)
环境:CentOS7、docker容器、镜像加速
- 安装docker容器点这里🎁
- 镜像加速点这里🎁
查看所有停止的容器
[root@Node1 docker]# docker ps -f status=exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM
创建容器(需要先拉取镜像)
1、命令:docker run -it --name=容器名称 镜像名称:标签 /bin/bash
[root@Node1 docker]# docker run -it --name=centos1 tutum/centos /bin/bash
(交互式:推出即退出)
[root@45f0876be2b3 /]# ps
PID TTY TIME CMD
1 pts/0 00:00:00 bash
16 pts/0 00:00:00 ps
[root@45f0876be2b3 /]# exit
exit
2、命令:docker run -di --name=容器名称 镜像名称:标签(创建)
命令:docker exec -it 容器名称 (或者容器ID) /bin/bash(登录)
[root@Node1 docker]# docker run -di --name=centos2 tutum/centos
(守护式:需登录)
dd8f93f14ea3faa883f8218384d77291e6515dd79ee372b8b4e754c5554bd844
[root@Node1 docker]# docker exec -it centos2 /bin/bash
(登录)
[root@dd8f93f14ea3 /]# ps
PID TTY TIME CMD
16 pts/0 00:00:00 bash
30 pts/0 00:00:00 ps
[root@dd8f93f14ea3 /]# exit
exit
相关参数:
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
停止和启动容器
[root@Node1 docker]# docker stop centos2
centos2
[root@Node1 docker]# docker start centos2
centos2
拷贝
1.从容器拷贝到本地(例子chen文件已经存于centos容器/目录下)
docker cp 容器名称:容器目录 需要拷贝的文件或目录
[root@Node1 ~]# docker cp centos2:/chen /
[root@Node1 ~]# cd /
[root@Node1 /]# ll
total 24
lrwxrwxrwx. 1 root root 7 Sep 2 12:39 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Sep 6 15:28 boot
-rw-r--r--. 1 root root 9 Sep 6 15:36 chen
2.从本地拷贝到容器(例子chen文件已经存于本地/目录下)
docker cp 需要拷贝的文件或目录 容器名称:容器目录
[root@Node1 /]# docker cp /chen centos2:/chen2
[root@Node1 /]# docker exec -it centos2 /bin/bash
[root@dd8f93f14ea3 /]# ll
total 36
-rw-r--r--. 1 root root 18298 Mar 4 2016 anaconda-post.log
lrwxrwxrwx. 1 root root 7 Mar 4 2016 bin -> usr/bin
-rw-r--r--. 1 root root 9 Sep 6 07:36 chen
-rw-r--r--. 1 root root 9 Sep 6 07:36 chen2
目录挂载
已有/data在宿主机
[root@Node1 /]# docker run -di -v /data:/data --name=centos3 tutum/centos
2edae6f9e00c7494aea95e368d918897d7a9d0cc3a8f81157f1d70bbeed720f8
[root@Node1 /]# docker exec -it centos3 /bin/bash
[root@2edae6f9e00c /]# cd /data
[root@2edae6f9e00c data]# ll
total 0
[root@2edae6f9e00c data]# exit
exit
[root@Node1 /]# cd data
[root@Node1 data]# ll
total 0
[root@Node1 data]# mkdir chen
[root@Node1 data]# vi shu
[root@Node1 data]# cat shu
new
[root@Node1 data]# ll
total 0
drwxr-xr-x. 2 root root 6 Sep 6 15:52 chen
-rw-r--r--. 1 root root 4 Sep 6 07:52 shu
[root@Node1 data]# docker exec -it centos3 /bin/bash
[root@2edae6f9e00c /]# cd /data
[root@2edae6f9e00c data]# ll
total 4
drwxr-xr-x. 2 root root 6 Sep 6 07:52 chen
-rw-r--r--. 1 root root 4 Sep 6 07:52 shu
[root@2edae6f9e00c data]# cat shu
new
查看容器IP
[root@Node1 data]# docker inspect --format='{{.NetworkSettings.IPAddress}}' centos3
172.17.0.3
详细点这里🎁