docker啟動命令
systemctl命令是系統(tǒng)服務(wù)管理器指令
啟動docker:
systemctl start docker
停止docker:
systemctl stop docker
重啟docker:
systemctl restart docker
查看docker狀態(tài):
systemctl status docker
開機啟動:
systemctl enable docker
查看docker概要信息
docker info
查看docker幫助文檔
docker ‐‐help
1猜欺、創(chuàng)建docker容器
命令:?docker run ubuntu:15.10 /bin/echo "Hello world"
docker:?Docker 的二進制執(zhí)行文件胚鸯。
run:?與前面的 docker 組合來運行一個容器。
ubuntu:15.10?指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫?Docker Hub?下載公共鏡像晃择。
/bin/echo "Hello world":?在啟動的容器里執(zhí)行的命令
以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創(chuàng)建一個新容器,然后在容器里執(zhí)行 bin/echo "Hello world"也物,然后輸出結(jié)果宫屠。
2、交互式容器
通過 docker 的兩個參數(shù) -i -t滑蚯,讓 docker 運行的容器實現(xiàn)"對話"的能力:
docker run -itd --name?ubuntu-test ubuntu:15.10 /bin/bash
-t:?在新容器內(nèi)指定一個偽終端或終端浪蹂。
-i:?允許你對容器內(nèi)的標(biāo)準輸入 (STDIN) 進行交互。
-d: 讓容器在后臺運行告材。
--name: 容器的名稱坤次。
3、常用命令
docker ps?:查看正在運行的容器
docker ps - a?:查看所有的容器
輸出詳情介紹:
CONTAINER ID:?容器 ID斥赋。
IMAGE:?使用的鏡像缰猴。
COMMAND:?啟動容器時運行的命令。
CREATED:?容器的創(chuàng)建時間疤剑。
STATUS:?容器狀態(tài)滑绒。
狀態(tài)有7種:
created(已創(chuàng)建)
restarting(重啟中)
running 或 Up(運行中)
removing(遷移中)
paused(暫停)
exited(停止)
dead(死亡)
PORTS:?容器的端口信息和使用的連接類型(tcp\udp)闷堡。
NAMES:?自動分配的容器名稱。
docker pull ubuntu:載入鏡像
docker rename 【原名稱/id】【新名稱】:修改容器名稱
docker stop 【容器名/id】:停止容器
docker start 【容器名/id】:啟動容器
docker restart 【容器名/id】:重啟容器
docker exec -it 【容器名/id】 /bin/bash:進入容器
docker rm -f 【容器名/id】:刪除容器
docker container prune:刪除所有處于終止?fàn)顟B(tài)的容器
4疑故、創(chuàng)建鏡像
docker commit -m="描述信息" -a="作者名" 【容器名/id】【鏡像名稱】:【標(biāo)簽】
-m:?提交的描述信息
-a:?指定鏡像作者
5杠览、容器連接
docker network create -d bridge(連接模式) 【連接名稱】
-d:參數(shù)指定 Docker 網(wǎng)絡(luò)類型,有 bridge纵势、overlay倦零。
6、問題
docker創(chuàng)建容器未配置時間的時候吨悍,容器的時間與主機的時間不一致扫茅,比如UTC和CST相差8小時,換句話來說就是容器時間與北京時間相差8個小時育瓜。
這里采取的方法是在Dockerfile文件里進行時間設(shè)置:
# 添加時區(qū)環(huán)境變量葫隙,亞洲,上海
ENV TimeZone=Asia/Shanghai
# 使用軟連接躏仇,并且將時區(qū)配置覆蓋/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
也可以在運行容器時進行配置:
-v /etc/localtime:/etc/localtime
# 實例1
docker run -p 3306:3306 --name mysql -v /etc/localtime:/etc/localtime
# 實例2
docker run \
? ? --detach \
? ? --restart always \
? ? --name 'scribe' \
? ? --publish 11315:11315 \
? ? --mount type=bind,source=/data/gop/,destination=/data/gop/,consistency=consistent \
? ? -v /etc/localtime:/etc/localtime \
? ? wsgzao/facebook-scribe
7恋脚、docker打包jar包鏡像
先創(chuàng)建一個文件夾,在文件夾中上傳所需jar包焰手,使用 vim 命令創(chuàng)建一個Dockerfile文件糟描,以下是dockerfile文件內(nèi)容:
### 引入jdk
FROM openjdk:8
###設(shè)置作者
MAINTAINER Ruide
###設(shè)置工作文件夾
WORKDIR /moyu-sso
###將jar包復(fù)制到對應(yīng)文件夾中
COPY moyudemo-1.0.0-SNAPSHOT.jar /moyu-sso/moyudemo-1.0.0-SNAPSHOT.jar
###設(shè)置時區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
? && echo 'Asia/Shanghai' >/etc/timezone \
RUN bash -c 'touch /moyu-sso/moyudemo-1.0.0-SNAPSHOT.jar'
###運行命令
ENTRYPOINT ["java","-jar","moyudemo-1.0.0-SNAPSHOT.jar"," > /moyu-sso/logs/info.log 2>&1 &"]
###暴露端口
EXPOSE 8082
編輯完Dockerfile之后,需要構(gòu)建鏡像
docker build -t 【鏡像名】 .
構(gòu)建完鏡像后創(chuàng)建一個容器并啟動:
docker run -it -p 8080:8080 --name 【容器名】 -d 【鏡像名】