docker常用命令及設(shè)置開(kāi)機(jī)自啟方式
docker常用命令及設(shè)置開(kāi)機(jī)自啟
常用基本命令
# 啟動(dòng)docker systemctl start docker # 停止dokcer systemctl stop docker # 查看docker狀態(tài) systemctl status docker # 重啟docker systemctl restart docker # 設(shè)置docker 開(kāi)機(jī)自啟 systemctl enable docker # 查看docker 版本 docker version # 查看docker 鏡像 docker images # 查看docker 運(yùn)行列表 docker ps # 查看docker (運(yùn)行、停止) docker ps -aq # 刪除容器 docker rm -f 容器ID/容器名稱(CONTAINER ID/NAMES) # 刪除多個(gè)容器(空格隔開(kāi)) docker rm -f 容器ID/容器名稱 容器ID/容器名稱 ... # 刪除全部容器 docker rm -f $(docker ps -aq)
設(shè)置docker開(kāi)機(jī)自啟
systemctl enable docker
設(shè)置容器自啟
1. 創(chuàng)建容器時(shí)設(shè)置:
docker run -d --restart=always --name 容器名稱 鏡像名稱 # 例如: docker run --restart=always 56f0b18af626
2. 更新已有容器設(shè)置:
docker update --restart=always 容器ID # 例如: docker update --restart=always 56f0b18af626
–restart具體參數(shù),詳見(jiàn)官方文檔
| Policy | Result |
|---|---|
| no | Do not automatically restart the container when it exits. This is the default. 默認(rèn)設(shè)置,容器退出時(shí)不重啟容器。 |
| on-failure[:max-retries] | Restart only if the container exits with a non-zero exit status. Optionally, limit the number of restart retries the Docker daemon attempts. 在容器非正常退出時(shí)重啟容器,最多重啟max-retries次。 |
| always | Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container. 總是重啟容器。 |
| unless-stopped | Always restart the container regardless of the exit status, including on daemon startup, except if the container was put into a stopped state before the Docker daemon was stopped. 總是重啟容器,除非在Docker守護(hù)程序停止之前容器就處于停止?fàn)顟B(tài)。 |
docker及容器設(shè)置開(kāi)機(jī)自啟,并修改容器時(shí)間、編碼格式
服務(wù)器的機(jī)房,有時(shí)候需要關(guān)機(jī)重啟,進(jìn)行機(jī)房改造!
docker自啟動(dòng)
查看已經(jīng)啟動(dòng)的服務(wù)
systemctl list-units --type=service

如上圖,docker已經(jīng)啟動(dòng),
如果沒(méi)有啟動(dòng),就先執(zhí)行一下啟動(dòng)命令
systemctl start docker
查看docker是否設(shè)置了開(kāi)機(jī)自啟
systemctl list-unit-files | grep docker

如上圖,設(shè)置成功,如果沒(méi)有設(shè)置開(kāi)機(jī)自啟,就是disabled
設(shè)置開(kāi)機(jī)啟動(dòng)命令
systemctl enable docker.service
容器自啟動(dòng)
設(shè)置容器自啟動(dòng)有兩種方式,一個(gè)是在創(chuàng)建并啟動(dòng)容器時(shí),一種是在容器啟動(dòng)之后
創(chuàng)建并啟動(dòng)容器時(shí),添加--restart=always
docker run -d --restart=always --name demo -p 8080:8080 -v /home/java_backend/logs:/app/logs demo
容器啟動(dòng)之后,執(zhí)行如下命令
docker update --restart=always 容器名稱
修改容器時(shí)間
修改容器時(shí)間有三種方式:創(chuàng)建并啟動(dòng)容器時(shí)共享宿主機(jī)時(shí)間、啟動(dòng)之后的容器復(fù)制宿主機(jī)的時(shí)間、在Dockerfile中設(shè)置
1.創(chuàng)建并啟動(dòng)容器時(shí)共享宿主機(jī)時(shí)間,在啟動(dòng)命令中增加-v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro
docker run -d --restart=always --name demo -p 8080:8080 -v /home/java_backend/logs:/app/logs -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro demo
2.啟動(dòng)之后的容器復(fù)制宿主機(jī)的時(shí)間
docker cp /etc/localtime [containerId]:/etc/localtime docker cp /etc/timezone [containerId]:/etc/timezone
containerId 為要修改的容器id,注意需要重啟容器
3.在Dockerfile中設(shè)置
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
Dockerfile中添加如上命令即可
修改容器編碼格式
首先進(jìn)入容器查看當(dāng)前字符編碼
locale

查看本地?fù)碛械淖址幋a
locale -a

C.UTF-8可以支持中文,只需要把容器編碼設(shè)置為C.UTF-8即可(有的是zh_CN.UTF-8,不過(guò)我在本地沒(méi)發(fā)現(xiàn)這種編碼)
臨時(shí)修改字符編碼
設(shè)置字符編碼為C.UTF-8
export LANG=C.UTF-8
重新加載環(huán)境變量
source /etc/profile
永久修改
Dockerfile中添加命令
ENV LANG C.UTF-8
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker-maven-plugin打包鏡像并上傳到私有倉(cāng)庫(kù)
本文主要介紹了docker-maven-plugin打包鏡像并上傳到私有倉(cāng)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問(wèn)題
容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實(shí)現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問(wèn)題,需要的朋友可以參考下2021-11-11
使用Docker構(gòu)建企業(yè)級(jí)自定義鏡像的方法
這篇文章主要介紹了使用Docker構(gòu)建企業(yè)級(jí)自定義鏡像的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn)
維清理鏡像是通過(guò)命令?docker?rm?i?刪除鏡像的,但是這條命令不會(huì)刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
Docker搭建簡(jiǎn)單的應(yīng)用棧與容器Hello World訪問(wèn)詳解
這篇文章主要介紹了Docker搭建簡(jiǎn)單的應(yīng)用棧與容器Hello World訪問(wèn),結(jié)合實(shí)例形式詳細(xì)分析了Docker應(yīng)用容器棧的獲取、互聯(lián)、啟動(dòng)、配置以及應(yīng)用訪問(wèn)測(cè)試相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
docker-compose實(shí)現(xiàn)wireshark對(duì)linux主機(jī)進(jìn)行抓包
這篇文章主要為大家介紹了docker-compose實(shí)現(xiàn)wireshark對(duì)linux主機(jī)進(jìn)行抓包腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
docker搭建zookeeper集群和kafka集群并使用Java測(cè)試詳解
本文詳細(xì)介紹了如何在Linux虛擬機(jī)中使用Docker搭建Kafka集群環(huán)境,并通過(guò)Kafka-Manager進(jìn)行可視化管理,文章包括了從鏡像拉取、容器網(wǎng)絡(luò)設(shè)置、Zookeeper和Kafka集群搭建到測(cè)試和使用Java連接集群的全過(guò)程2026-01-01

