docker 安装
- 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 Docker-CE
sudo yum install docker-ce
使用dockerfile构建镜像
- dockerfile文件要放在项目同级目录
FROM java:8
MAINTAINER gyu
# 新建目录
RUN mkdir /opt/jar/
# 把jar包添加进去
# 需要改为你运行的jar包名称
ADD lib /opt/jar/lib/
ADD resources /opt/jar/lib/resources/
ADD **.jar /opt/jar/
#时区
RUN echo "Asia/Shanghai" > /etc/timezone
RUN mv /etc/localtime /etc/localtime_bak
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
EXPOSE 8080
WORKDIR /opt/
# Launch JAVA
# 需要改为你运行的jar包名称
CMD ["java", "-jar","/opt/jar/**.jar"]
1.构建镜像
docker build -t yugangdocker/uac-producer .
docker commit --author "gyu" --message "构建容器镜像" CONTAINER ID 容器名称
2.启动镜像
docker run -d -p 2100:2100 yugangdocker/uac-producer
3.删除镜像
docker rmi IMAGE ID
4.删除容器
docker rm CONTAINER ID
5、注册docker仓库
https://hub.docker.com/
创建仓库
6、使用 docker tag(tag是为了上传到正确的仓库位置)
docker tag imgid yugangdocker(仓库账号)/uac-producer(镜像名称):latest(镜像版本)
7、docker image查看打标签的镜像
[root@localhost yg]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yugangdocker/uac-producer latest 9cba917a248c 8 days ago 747MB
9cba917a248c/uac-producer latest 9cba917a248c 8 days ago 747MB
uac-producer latest 9cba917a248c 8 days ago 747MB
yugangdocker/9cba917a248c/uac-producer latest 9cba917a248c 8 days ago 747MB
hello-world latest fce289e99eb9 9 months ago 1.84kB
java 8 d23bdf5b1b1b 2 years ago 643MB
8、docker push 上传到中央仓库(首先自己创建一个仓库和镜像tag相同否则上传不上)
docker push yugangdocker/uac-producer:latest (默认:latst版本)
9、docker pull 拉取私库镜像(首先需要登录到仓库 docker login)
[root@localhost yg]# docker login
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@localhost yg]# docker pull yugangdocker/uac-producer
Using default tag: latest
latest: Pulling from yugangdocker/uac-producer
Digest: sha256:d8938c54acb8d29cc44ba939152fd8359c15f68450815884a357099c1348f380
Status: Image is up to date for yugangdocker/uac-producer:latest
[root@localhost yg]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yugangdocker/uac-producer latest 9cba917a248c 8 days ago 747MB
hello-world latest fce289e99eb9 9 months ago 1.84kB
java 8 d23bdf5b1b1b 2 years ago 643MB
10、运行docker镜像
[root@localhost yg]# docker run -d -p 2100:2100 9cba917a248c
4a4d511f5a949ae222d504bdf15ef3317b888fc5defe0d627c51e81da16f2239
[root@localhost yg]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a4d511f5a94 9cba917a248c "java -jar /opt/jar/…" 3 seconds ago Up 2 seconds 0.0.0.0:2100->2100/tcp flamboyant_raman
11、进入容器
- docker exec -it CONTAINER ID bash
[root@localhost yg]# docker exec -it 4a4d511f5a94 bash
root@4a4d511f5a94:/opt# ls
jar
root@4a4d511f5a94:/opt# cd jar/
root@4a4d511f5a94:/opt/jar# ls
lib resources uac-producer.jar
root@4a4d511f5a94:/opt/jar#
12、重启容器
docker restart CONTAINER ID
13、保存镜像为文件
- 如果要讲镜像保存为本地文件,可以使用Docker save命令。
- 命令格式:
- docker save -o 要保存的文件名 要保存的镜像
- 比如这里,我们将java8的镜像保存为文件:docker save -o java8.tar lwieske/java-8
- 完成后通过 ls 命令即可看到文件。
14、从文件载入镜像
- 从文件载入镜像可以使用Docker load命令。
- 命令格式:docker load --input 文件
- 或者:docker load < 文件名
- 此时会导入镜像以及相关的元数据信息等。首先使用SSH工具将文件上传到另一台服务器。
- 然后通过命令载入镜像:docker load < java8.tar
- 导入后可以使用docker images命令查看: