Docker镜像和容器

前言:
镜像与容器的关系是一对多,即:同一个镜像可以创建不同版本的容器;
因此需要先创建镜像,再运行镜像并指定相应的参数,如:版本、端口、容器名称、、

1、创建镜像
在创建镜像之前需要先创建Dockerfile文件,该文件是Docker最主要的配置文件,包括docker运行等各种配置:
示例:
[root@centost1 centos7]# vi Dockerfile
填写以下简单脚本测试:
FROM centos:centos7.1.1503
CMD ["/bin/echo","this is test cmd docker"]
执行镜像创建命令:
Dockerfile在当前目录时,用“.”表示:
[root@centost1 centos7]# docker build -t test/centos:7.1 .
或者指定Dockerfile所在目录:
[root@centost1 centos7]# docker build -t test/wordpress:4.2 /usr/software/docker/git/docker-training/wordpress
Step 9 : ADD supervisord.conf /etc/supervisord.conf
 ---> 805f510ea2c8
Removing intermediate container 01b28338b0ca
Step 10 : RUN mkdir -p /etc/supervisor.conf.d &&     mkdir -p /var/log/supervisor
 ---> Running in ea323222231c
 ---> 0ccb19ab1472
Removing intermediate container ea323222231c
Step 11 : EXPOSE 22
 ---> Running in 46b3fae7614a
 ---> bfa2da373c93
Removing intermediate container 46b3fae7614a
Step 12 : ENTRYPOINT /usr/bin/supervisord -n -c /etc/supervisord.conf
 ---> Running in fd69533f2fae
 ---> b71b18e0e65b
Removing intermediate container fd69533f2fae
Successfully built b71b18e0e65b

说明:如果不指定版本则默认版本是latest

2、生成容器
创建镜像之后,需要启动镜像才会生成相应的容器
查看当前拥有的镜像可以使用docker

[root@centost1 centos7]#  docker images

启动镜像常用两种方式启动:
1)docker run -d (在后台启动容器,返回一个容器编号)
2)docker run -it (交互式模式启动,把容器启动到前台)

如:
[root@centost1 centos7]# docker run -d -p 2222:22 --name base test/centos:7.1
6b11b19c4828594a2710c6ecbd721c50c3a4d296187c3c3c62d396081d256e64
说明:
--name:容器的名字(可以自定义)
-d -p 2222:22 (使用宿主机的2222端口来映射到docker容器的22端口)

如果启动错误,
Conflict. The name "/base" is already in use by container 
则把旧的容器删掉,再启动。

3、查看容器:
docker ps (查看正在运行的容器)
docker ps -a (查看所有容器[包括未运行的])

[root@centost1 centos7]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                  NAMES
6b11b19c4828        test/centos:7.1   "/usr/bin/supervisord"   2 minutes ago       Up 2 minutes        0.0.0.0:2222->22/tcp   base 

4、进入容器
容器启动之后可以进入容器内部进行一些命令操作:
示例:
[root@centost1 php-fpm]# docker exec -it base /bin/bash
[root@8ded2f9c63cc /]#

5、容器的管理
通过镜像run启动容器之后可以对容器进行管理:
语法:
docker start 容器名称: 启动一个或多少已经被停止的容器
docker stop 容器名称: 停止一个运行中的容器
docker restart 容器名称: 重启容器
docker rm 容器名称:删除容器
或者 docker rm -f 容器名称:强制删除容器

示例:
[root@centost1 ~]# docker start base
base

6、容器删除
先查看需要删除的镜像:
[root@centost1 ~]#  docker ps -a
然后可以根据容器ID镜像删除:
[root@centost1 ~]#  docker rm a1157d56ac1b
注:如果该容器是已经运行状态的话,需要停止容器再删除,或者使用docker rm -f 强制删除;

7、镜像删除
镜像删除与容器删除类似
[root@centost1 ~]#  docker rmi test/centos:7.0
或者
[root@centost1 ~]#  docker rmi -f test/centos:7.0

8、docker run一些参数说明:
1)docker run -v : 设置镜像数据备份目录:
示例:
[root@centost1 mysql]# docker run -d -p 3306:3306 -v /usr/software/docker/git/mydata:/var/lib/mysql --name dbserver test/mysql:5.5
说明:
-v /usr/software/docker/git/mydata:/var/lib/mysql
将mysql数据目录同时存到/usr/software/docker/git/mydata
当把容器删除后,可以从新挂载备份目录下的数据:
示例:
[root@centost1 mysql]# docker run -d -p 3306:3306 --name newdb -v /usr/software/docker/git/mydata:/var/lib/mysql
2)docker run -rm 
[root@centost1 mysql]# docker run -it --rm test/cmd:1.0 
说明:(表示执行完成后就把容器删掉)









  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值