docker常用命令及設(shè)置開機(jī)自啟方式
docker常用命令及設(shè)置開機(jī)自啟
常用基本命令
# 啟動docker systemctl start docker # 停止dokcer systemctl stop docker # 查看docker狀態(tài) systemctl status docker # 重啟docker systemctl restart docker # 設(shè)置docker 開機(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) # 刪除多個容器(空格隔開) docker rm -f 容器ID/容器名稱 容器ID/容器名稱 ... # 刪除全部容器 docker rm -f $(docker ps -aq)
設(shè)置docker開機(jī)自啟
systemctl enable docker
設(shè)置容器自啟
1. 創(chuàng)建容器時設(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ù),詳見官方文檔
| Policy | Result |
|---|---|
| no | Do not automatically restart the container when it exits. This is the default. 默認(rèn)設(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. 在容器非正常退出時重啟容器,最多重啟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è)置開機(jī)自啟,并修改容器時間、編碼格式
服務(wù)器的機(jī)房,有時候需要關(guān)機(jī)重啟,進(jìn)行機(jī)房改造!
docker自啟動
查看已經(jīng)啟動的服務(wù)
systemctl list-units --type=service

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

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

