一、查看宿主机下是否有符合需求的docker镜像
操作命令如下:
1 [root@server4 ~]# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 docker:5000/tomcat-https latest 11a4491c149a 3 months ago 333.9 MB 4 docker:5000/trd-scanner-net latest 7b327429bbc5 10 months ago 1.2 GB 5 docker:5000/tomcat latest b8dfe9ade316 10 months ago 333.9 MB 6 docker:5000/python 2.7.10 56fd9e0b9e18 13 months ago 676.3 MB 7 docker:5000/python-java 2.7.10 4222d775fde3 14 months ago 932.6 MB 9 docker:5000/logstash 5.1.2 9c3e54db5b3d 15 months ago 494.4 MB 10 docker:5000/elasticsearch 5.1.2 3b9ab09f293c 15 months ago 352.5 MB 11 docker:5000/java 8 d23bdf5b1b1b 15 months ago 643.1 MB13 docker:5000/mobz/elasticsearch-head 5 b19a5c98e43b 16 months ago 823.9 MB 14 docker:5000/redis latest 1c2ac2024e4b 17 months ago 182.9 MB 15 docker:5000/php 5.6.10 85a8f7dfbd55 18 months ago 444.3 MB 16 docker:5000/java 7-jre c27eb4ce75bb 23 months ago 334.5 MB 17 docker:5000/mongo latest ddad4160b92f 2 years ago 313 MB 18 docker:5000/mysql latest 63a92d0c131d 2 years ago 374 MB 19 docker:5000/jplock/zookeeper latest 1cf23317deaa 2 years ago 155.4 MB 20 docker:5000/ruby 2.2.2 6e25aaae5cba 2 years ago 777.4 MB 21 docker:5000/python 3.4.3 d2dc073918d4 2 years ago 756.8 MB
如果没有就需要从docker私库里pull出需要的镜像,如果私库里没有就需要自己制作上传上去或者从docker中央仓库里pull出
我需要的是java-Python的镜像,操作命令如下:
1 [root@server4 ~]# docker pull docker:5000/python-java:2.7.10 2 2.7.10: Pulling from python-java 3 4 a3ed95caeb02: Already exists 5 a3ed95caeb02: Already exists 6 816152842605: Already exists 7 5dcab2c7e430: Already exists 8 dc54ada22a60: Already exists 9 b7b0de78f891: Already exists 10 88363ed594cb: Already exists 11 f8c4a940a0da: Already exists 12 2640d83b37bc: Pull complete 13 Digest: sha256:2f2fd19a5e5334877cf95263125664e611f5826df823d846c64e503cfb586f88 14 Status: Downloaded newer image for docker:5000/python-java:2.7.10
需要注意的是:docker:5000这里在/etc/hosts做了映射:ip docker
使用该镜像创建并启动容器,以detached模式运行容器名为python-java-2.7.10,将/user目录挂载到容器中的/sqy目录
通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。
挂载宿主机文件/home/web-test到容器内文件/usr/local/webapps,如果容器内文件/usr/local/webapps下有内容,会将下面的内容删除
1 [root@server4 ~]# docker run -d --restart always --name python-java-2.7.10 -v /usr:/sqy -ti docker:5000/python-java:2.7.10 2 a1cba830014c9c4b401c2184d6c9ca48811b4a7dc92c2e613e0f4dcef6532540 容器的id 3 [root@server4 ~]# docker ps 4 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5 a1cba830014c docker:5000/python-java:2.7.10 "bash" 2 minutes ago Up About a minute python-java-2.7.10 6 3f340defc410 docker:5000/mongo "/entrypoint.sh --sto" 7 weeks ago Up 7 weeks 0.0.0.0:27017->27017/tcp mongo-demo
进入docker容器查询Python,java版本信息
1 [root@server4 ~]# docker exec -it cfd6e74d9c28 bash 2 root@cfd6e74d9c28:/# python -V 3 Python 2.7.10 4 root@cfd6e74d9c28:/# java -version 5 java version "1.7.0_121" 6 OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-2~deb8u1) 7 OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)
在容器里安装了一些软件以后,再将容器制作成镜像,
1 docker commit -m "centos_with_nettools_and_wget(对容器操作了什么)" -a "Frankie(作者名)" 64b(容器id) centos_with_net(镜像名称、版本号) 2 如果不加版本号,默认latest,我采用1.8,jdk1.8_yum:1.8
3 docker commit -m "centos_add_jdk1.8" -a "sqy" 733bacc5c9ca jdk1.8_yum:1.8
再查询docker镜像就可以看到了
docker images
1 jdk1.8_yum 1.8 428cd765479d 21 hours ago 413MB
二、删除docker镜像
首先删除该镜像对应的docker容器
1,停止docker容器
1 查看运行中的docker容器 2 [root@server4 ~]# docker ps 3 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4 a1cba830014c docker:5000/python-java:2.7.10 "bash" About an hour ago Up About an hour python-java-2.7.10 5 3f340defc410 docker:5000/mongo 6 停止docker容器 7 [root@server4 ~]# docker stop a1cba830014c 8 a1cba830014c 9 查看运行中的docker容器 10 [root@server4 ~]# docker ps 11 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12 3f340defc410 docker:5000/mongo "/entrypoint.sh --sto" 7 weeks ago Up 7 weeks 0.0.0.0:27017->27017/tcp mongo-demo 13 查看所有的docker容器 14 [root@server4 ~]# docker ps -a 15 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 16 a1cba830014c docker:5000/python-java:2.7.10 "bash" About an hour ago Exited (0) 3 minutes ago python-java-2.7.10 17 3f340defc410 docker:5000/mongo "/entrypoint.sh --sto" 7 weeks ago Up 7 weeks 0.0.0.0:27017->27017/tcp mongo-demo 18 删除docker容器 19 [root@server4 ~]# docker rm a1cba830014c 20 a1cba830014c 21 查看所有的docker容器 22 [root@server4 ~]# docker ps -a 23 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 24 3f340defc410 docker:5000/mongo "/entrypoint.sh --sto" 7 weeks ago Up 7 weeks 0.0.0.0:27017->27017/tcp mongo-demo
也可以使用强制删除,不用stop正在运行时的容器,docker rm -f a1cba830014c
2,删除镜像
1 [root@node105 ~]# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 tcr:5000/elasticsearch 5.5.3 60503d5b81fb 8 months ago 510MB 4 caryyu/selenium-chrome latest 5608bb454b54 9 months ago 613MB 5 [root@node105 ~]# docker rmi caryyu/selenium-chrome
或者是IMAGE ID (5608bb454b54)
----------------------------------------------------若有不正之处,欢迎大家指正,不胜感激!!!!!