Ubuntu下安裝docker
安裝
安裝命令:
sudo apt-get update
sudo apt-get install docker.io
(如果安裝失敗,也可參考如下網(wǎng)站進行安裝:鏈接)
啟動
啟動命令:
sudo service docker start
測試
測試運行hello-world:
sudo docker run hello-world
運行效果:

運行效果圖
設置docker鏡像加速
添加鏡像加速地址
編輯daemon.json文件:
sudo vim /etc/docker/daemon.json
添加阿里云加速鏡像地址內(nèi)容:
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
重啟服務
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
下載基礎鏡像
搜索鏡像
進入阿里云的鏡像倉庫搜索自己想要的鏡像,鏈接。

阿里云鏡像倉庫
找到想要的java基礎鏡像:

java基礎鏡像
右邊有相應的版本,下載自己想要的版本(注:這里的java全部是openjdk,不是oracle
jdk)。
下載鏡像
語法:
docker pull [OPTIONS] NAME[:TAG|[@DIGEST](https://my.oschina.net/u/3392911)]
說明:
OPTIONS:參數(shù),例如 ‘-a’,下載所有版本的鏡像。
NAME:鏡像名稱,例如 ‘java’。
TAG:為版本,例如 ‘java:8u111’,java的8u111版本。
實例:
sudo docker pull java:8u111
(注:如果不指定相應的版本,docker則會自動下載最新的版本。)
查看本地鏡像
運行命令:
sudo docker images

image
編寫Dockerfile
FROM java #基礎的鏡像
ADD application.yml application.yml #添加配置文件
ADD FaceWeb-1.0.2-SNAPSHOT.jar app.jar #添加項目的jar包,并重命名
EXPOSE 80 #聲明端口
VOLUME /tmp #定義匿名卷
#程序的入口點
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar","/app.jar", "--Dspring.config.location=application.yml"]
# Ubuntu 時區(qū)
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
(詳情請參考:鏈接)
修改項目配置application.yml
略。
編譯鏡像
上傳文件
在服務器上建立一個文件夾,用于存放docker文件,將文件通過工具全部發(fā)送到服務器上。

image
編譯
語法:
docker build [OPTIONS] PATH | URL | -
OPTIONS說明:
-f :指定要使用的Dockerfile路徑;
-m :設置內(nèi)存最大值;
--tag, -t:鏡像的名字及標簽,通常 name:tag 或者 name格式;可以在一次構建中為一個鏡像設置多個標簽。
實例:
sudo docker build -t faceweb .
(注:詳細語法,請查看:鏈接)

image
編譯完成后運行查看鏡像,就可以看到剛剛編譯好的鏡像了。

image
啟動容器
運行命令
語法:
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明:
-d:后臺運行容器,并返回容器ID;
-p: 端口映射,格式為:主機(宿主)端口:容器端口;
--name:"nginx-lb":為容器指定一個名稱;
-e username="ritchie":設置環(huán)境變量;
-P:隨機端口映射。
(注:詳細語法,請查看:鏈接)
實例:
sudo docker run –name faceweb -d -p 80:80 faceweb
- 查看運行的容器
語法:
sudo docker ps [OPTIONS]
OPTIONS說明:
-a :顯示所有的容器,包括未運行的;
-l :顯示最近創(chuàng)建的容器。
(注:詳細語法,請查看:鏈接)
實例:
sudo docker ps -a

image

image
可以清楚的看到端口的映射情況和容器的一些詳細信息。
到目前為止,docker容器的下載,編譯和部署已經(jīng)完成,下面是容器的一些常用操作介紹。
容器常用操作命令
查看運行的容器
查看容器,復制容器的CONTAINER ID。
停止容器
sudo docker stop CONTAINER
啟動容器
sudo docker start CONTAINER
重啟容器
sudo docker restart CONTAINER
刪除容器
sudo docker rm CONTAINER
(注:刪除容器前需要先停止這個容器,刪除是不可逆的,謹慎操作。)
查看容器的日志
sudo docker logs [OPTIONS] CONTAINER
OPTIONS說明:
-f : 跟蹤日志輸出;
-t : 顯示時間戳;
--since :顯示某個開始時間的所有日志;
--tail :僅列出最新N條容器日志。
實例:
sudo docker logs -f cd4c9b023c46
進入容器
語法:
sudo docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
-i :即使沒有附加也保持STDIN 打開;
-t :分配一個偽終端。
實例:
sudo docker exec -it faceweb /bin/bash

image
鏡像的常用操作
刪除鏡像
語法
sudo docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:
-f :強制刪除;
--no-prune :不移除該鏡像的過程鏡像,默認移除。
實例:
sudo docker rmi faceweb
(注:所有的刪除是不可逆的,請請謹慎操作。)
所有的docker命令請參考:鏈接