Docker入门操作

1.Docker命令简单介绍

Docker入门操作

2.Docker常用命令

(1)查看当前镜像:docker images   能够查看本地当前有哪些镜像

(2)启动容器:docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash

         注释:docker run <相关参数> <镜像 ID> <初始命令>
          其中,相关参数包括:-i:表示以“交互模式”运行容器;  -t:表示容器启动后会进入其命令行 ;   -v:表示需要将本地哪个  目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>;假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。

(3)查看运行容器:docker ps

(4)查看所有的容器:docker ps -a

(5)启动容器:docker run -d -p 58080:8080 --name javaweb huangyong/javaweb:0.1 /root/run.sh
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即可。
在一系列参数后面的是"镜像名"或"镜像ID",怎么方便就怎么来。最后是"初始命令",run.sh编写的是运行脚本,里面封装了加载环境变量并启动 Tomcat 服务的命令。当运行以上命令后,会立即输出一长串"容器 ID",我们可通过docker ps命令来查看当前正在运行的容器。

vi /root/run.sh
然后,编辑脚本内容如下:
#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run
注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。
最后,为运行脚本添加执行权限:chmod u+x /root/run.sh

3.镜像从0开始搭建

(1)申请ECS,centos7

(2)工具连接到centos,安装docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# step 5:查看docker是否成功启动
docker version

输出:
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

(3)下载tomcat和jdk8

docker pull centos:latest  先拉一份centos到镜像中。直接官网下载tomcat8和jdk8最新版本安装包即可。

(4)解压tomcat和jdk8

1.mkdir -p data/tomcat
2.tar xvf jdk-8u181-linux-x64.tar.gz -C data/tomcat/       将jdk文件夹解压到data/tomcat下
3.tar xvf apache-tomcat-8.5.34.tar.gz -C data/tomcat/      将apache文件夹解压到data/tomcat下
4.Tomcat重命名:mv data/tomcat/apache-tomcat-8.5.34 data/tomcat/tomcat
5.JDK重命名:mv data/tomcat/jdk1.8.0_181 data/tomcat/jdk

(5)编辑Dockerfile(随便放置目录,此处放置到data/tomcat下)

FROM centos:latest
MAINTAINER Reed "[email protected]"
RUN mkdir -p /usr/local/java/jdk1.8.0_181
RUN mkdir -p /usr/local/apache-tomcat-8.5.34
ADD jdk /usr/local/java/jdk1.8.0_181
ADD tomcat /usr/local/apache-tomcat-8.5.34
ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.34
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
EXPOSE 8080
EXPOSE 80
CMD ["/usr/local/apache-tomcat-8.5.34/bin/catalina.sh","run"]   #此处启动脚本,可以放到start.sh中

(6)构建Docker

docker build -t centos7-jdk8-tomcat8:20180926 data/tomcat    #最后是Dockerfile所在目录

等待build结束

(7)查看镜像:docker images  查看是否是多了一个centos7-jdk8-tomcat8:20180926 这个镜像,有自己的imageId

(8)启动镜像

docker run -d -p 8080:8080 --name jdk8-tomcat8 centos7-jdk8-tomcat8:20180926

(9)查看运行镜像:docker ps

(10)验证启动是否成功:curl localhost:8080

(11)登录阿里云镜像仓库:

sudo docker login [email protected] registry.cn-hangzhou.aliyuncs.com

(12)镜像推送到镜像仓库

$ sudo docker login [email protected] registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [镜像ID] registry.cn-hangzhou.aliyuncs.com/namespace/imagename:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/namespace/imagename:[镜像版本号]

上述就完成了镜像的推送,可以从上面的镜像仓库中拉取镜像下来即可