docker创建与使用镜像

1、接上一篇docker安装与基本使用,我们已经装好docker环境了,接下来看看怎么使用它了,可以直接到镜像仓库拉取直接使用

可先查找镜像,如查找一个jdk8的镜像
docker search jdk8
找到合适的镜像后,可直接拉取,其中xxx为镜像名
docker pull xxx

2、直接在线拉取镜像使用本文不作介绍,下面动手创建一个jdk8的基本环境的镜像,当然这个jdk8环境是基于centos镜像的,

mkdir /docker
cd /docker

在docker目录中编写一个文件Dockerfile,内容如下

FROM centos
MAINTAINER mixfate
ADD jdk-8u65-linux-x64.tar.gz /
ENV JAVA_HOME=/jdk1.8.0_65
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EXPOSE 8080
ENTRYPOINT ["java","-version",""]

将jdk上传到/docker/jdk-8u65-linux-x64.tar.gz

3、执行命令build构建镜像,结果如下

[root@localhost docker]# docker build -t java1.8 .

Sending build context to Docker daemon  181.3MB
Step 1/8 : FROM centos
 ---> af7c74ac94e5
Step 2/8 : MAINTAINER mixfate
 ---> Using cache
 ---> 1005831b27e6
Step 3/8 : ADD jdk-8u65-linux-x64.tar.gz /
 ---> Using cache
 ---> 662ec0354395
Step 4/8 : ENV JAVA_HOME /jdk1.8.0_65
 ---> Running in 62297aa627b4
 ---> b1ffd98d6652
Removing intermediate container 62297aa627b4
Step 5/8 : ENV PATH $JAVA_HOME/bin:$PATH
 ---> Running in 5f6f1a254789
 ---> 50a8db84c4f5
Removing intermediate container 5f6f1a254789
Step 6/8 : ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in 3f0b61c3982b
 ---> 70d9c1b97d25
Removing intermediate container 3f0b61c3982b
Step 7/8 : EXPOSE 8080
 ---> Running in 8abbd2583387
 ---> d096ed08f5f5
Removing intermediate container 8abbd2583387
Step 8/8 : ENTRYPOINT java -version 
 ---> Running in 558d376716be
 ---> b7ff86b0c1bb
Removing intermediate container 558d376716be
Successfully built b7ff86b0c1bb
Successfully tagged java1.8:latest
[root@localhost docker]#

4、此时可使用命令docker images查看构建好的镜像 java1.8

[root@localhost docker]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java1.8             latest              fcd857ec1a79        48 seconds ago      561MB
centos              latest              af7c74ac94e5        10 minutes ago      197MB
[root@localhost docker]# 

5、有了镜像就可以创建容器了,命令如下

[root@localhost docker]# docker run -i -p 8080:8080 -t java1.8 /bin/bash

java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
[root@localhost docker]#

6、常用操作命令

进入容器
docker exec -it java1.8 /bin/bash
使用 Ctrl + P + Q 退出容器

停止运行容器
docker stop xxx
docker stop $(docker ps -q) 停止所有容器

从容器中导出镜像文件及导入
docker export xxxx > java1.8.tar
cat java1.8.tar | docker import - java1.8
其中 xxxx 为容器id

从镜像中导出镜像文件及导入
docker save xxxx > centos.tar (docker save xxx -o xxx.tar)
docker load < centos.tar (docker load -i xxx.tar)
其中 xxxx 为镜像id

注意
需注意两种方法不可混用,虽然导入不提示错误,但是启动容器时会提示失败。

删除容器及删除镜像
docker rm xxx 删除容器
docker rm $(docker ps -a -q) 删除所有容器
docker rmi xxx 删除镜像

赞赏(Donation)
微信(Wechat Pay)

donation-wechatpay