Docker入门操作
1.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:[镜像版本号]
上述就完成了镜像的推送,可以从上面的镜像仓库中拉取镜像下来即可