docker常用命令及設(shè)置開機自啟方式
docker常用命令及設(shè)置開機自啟
常用基本命令
# 啟動docker systemctl start docker # 停止dokcer systemctl stop docker # 查看docker狀態(tài) systemctl status docker # 重啟docker systemctl restart docker # 設(shè)置docker 開機自啟 systemctl enable docker # 查看docker 版本 docker version # 查看docker 鏡像 docker images # 查看docker 運行列表 docker ps # 查看docker (運行、停止) docker ps -aq # 刪除容器 docker rm -f 容器ID/容器名稱(CONTAINER ID/NAMES) # 刪除多個容器(空格隔開) docker rm -f 容器ID/容器名稱 容器ID/容器名稱 ... # 刪除全部容器 docker rm -f $(docker ps -aq)
設(shè)置docker開機自啟
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. 默認設(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守護程序停止之前容器就處于停止狀態(tài)。 |
docker及容器設(shè)置開機自啟,并修改容器時間、編碼格式
服務(wù)器的機房,有時候需要關(guān)機重啟,進行機房改造!
docker自啟動
查看已經(jīng)啟動的服務(wù)
systemctl list-units --type=service
如上圖,docker已經(jīng)啟動,
如果沒有啟動,就先執(zhí)行一下啟動命令
systemctl start docker
查看docker是否設(shè)置了開機自啟
systemctl list-unit-files | grep docker
如上圖,設(shè)置成功,如果沒有設(shè)置開機自啟,就是disabled
設(shè)置開機啟動命令
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)建并啟動容器時共享宿主機時間、啟動之后的容器復制宿主機的時間、在Dockerfile中設(shè)置
1.創(chuà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.啟動之后的容器復制宿主機的時間
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中添加如上命令即可
修改容器編碼格式
首先進入容器查看當前字符編碼
locale
查看本地擁有的字符編碼
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創(chuàng)建MongoDB容器并添加root密碼驗證與更多用戶詳細步驟
MongoDB是一個著名的面向文檔的數(shù)據(jù)庫,被許多現(xiàn)代Web應用程序使用,下面這篇文章主要給大家介紹了關(guān)于Docker創(chuàng)建MongoDB容器并添加root密碼驗證與更多用戶的相關(guān)資料,需要的朋友可以參考下2023-01-01Windows?Docker部署Kong網(wǎng)關(guān)的實現(xiàn)步驟
Kong是一個輕量級、快速、靈活的云原生API網(wǎng)關(guān),本文主要介紹了Windows?Docker部署Kong網(wǎng)關(guān)的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-03-03使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細步驟
現(xiàn)如今,通過 Docker 容器化部署環(huán)境已經(jīng)逐漸成為主流,特別是在部署像 LAMP 這樣的復雜環(huán)境時,本教程旨在帶您完成使用 Docker-Compose 建立 LAMP 環(huán)境的整個過程,同時還包括定制 PHP 環(huán)境的步驟,需要的朋友可以參考下2024-12-12使用docker compose搭建一個elk系統(tǒng)的方法
這篇文章主要介紹了使用docker-compose搭建一個elk系統(tǒng)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08把數(shù)據(jù)庫部署在docker容器內(nèi)有哪些缺陷
這篇文章主要介紹了把數(shù)據(jù)庫部署在docker容器內(nèi)有哪些缺陷,幫助大家更好的理解和學習docker容器和數(shù)據(jù)庫,感興趣的朋友可以了解下2020-08-08docker內(nèi)部容器之間的端口訪問實現(xiàn)方法
alpine-client?與?alpine-server?兩容器,前者訪問后者監(jiān)聽之端口,以此探析?Docker?內(nèi)部容器間端口訪問機制,這篇文章主要介紹了如何實現(xiàn)docker內(nèi)部容器之間的端口訪問,需要的朋友可以參考下2024-04-04docker images,info,-d等命令報錯的解決方法
最近剛接觸Docker,所以在學習的過程中出現(xiàn)了好多的問題,百度上不好找,谷歌的話,樓主不會翻墻。后來通過各方求助和細心研究解決了一些遇到的問題,現(xiàn)在將遇到的問題和解決方法分享給大家,有需要的朋友們可以參考借鑒。2016-11-11