《Apex英雄》第13賽季“救世主”中文實機預告
檢視docker執行狀態:
systemctl status docker
啟動docker:
systemctl start docker
關閉docker:
systemctl stop docker
重啟docker:
systemctl restart docker
開機自啟動docker:
systemctl enable docker
一般安裝的docker下載映象都是從國外的網站去下載,所以最好更換一下映象源,換成國內的映象倉庫,見下面的docker安裝。
映象的操作:
查詢映象:
docker search 映象名
拉取映象:
docker pull 映象名:版本 // 如果沒有寫版本號,預設拉取的是最新版本的映象
檢視本地的映象:
docker images
刪除映象:
docker rmi 映象名/映象id
查詢所有的映象id:
docker iamges -q
批量刪除映象:
docker rmi `docker images -q`
容器的操作:
要區分:run是建立容器(根據映象檔案建立新的容器),start是啟動容器(啟動一個已經建立的容器)
建立容器及引數說明:
docker run -i: 表示執行容器 -t: 表示容器啟動後會進入容器(互動式) -name: 為建立的容器命名-d: 建立一個守護式容器在後臺執行 -P(大寫): 預設的對映埠 -p(小寫): 指定對映埠,前者是宿主機埠,後者是容器內的對映埠(前大後小)。可以使用多個-p做多個埠對映 -v: 指定目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄),可以使用多個-v做多個目錄或檔案對映。注意:最好做目錄對映,在宿主機上做修改,然後共享到容器上
建立互動式容器(並進入容器控制檯):
docker run -it 映象名 /bin/bash
退出容器:
exit
檢視正在執行的容器:
docker ps
檢視所有的容器(執行或關閉):
docker ps -a
檢視所有的容器id:
docker ps -a -q
刪除容器:
docker rm 容器名/容器id
批量刪除容器:
docker rm `docker ps -a -q`
啟動容器:
docker start 容器id/容器名
關閉容器:
docker stop 容器id/容器名 // 執行慢 docker kill 容器id/容器名 // 執行快
進入正在執行的容器:
docker exec -it 容器名/容器id /bin/bash
安裝docker:
1 解除安裝系統之前的docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 2 設定儲存庫 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 3 安裝DOCKER引擎 sudo yum install docker-ce docker-ce-cli containerd.io 4 啟動Docker. sudo systemctl start docker 5 配置映象加速 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 更多映象加速地址: 科大映象:https://docker.mirrors.ustc.edu.cn/ 網易:https://hub-mirror.c.163.com/ 阿里雲:https://<你的ID>.mirror.aliyuncs.com 七牛雲加速器:https://reg-mirror.qiniu.com
docker安裝mysql:
注意:最好指定容器掛載的目錄,很多教程都沒有
sudo docker pull mysql:5.7 # --name指定容器名字 -v目錄掛載 -p指定埠對映 -e設定mysql引數 -d後臺執行 sudo docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=你的密碼 \ -d mysql:5.7
修改mysql的字符集:
因為有目錄對映,所以我們可以直接在映象外執行 vi /mydata/mysql/conf/my.conf [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve
注意:使用navicat進行遠端連線時,需要在雲伺服器裡面進行安全組的設定,開放3306埠。
docker安裝redis:
# 在虛擬機器中 mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf docker pull redis docker run -p 6379:6379 --name redis \ -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf # 直接進去redis客戶端。 docker exec -it redis redis-cli
預設是不持久化的。在配置檔案中輸入appendonly yes,就可以aof持久化了,修改完docker restart redis。
vim /mydata/redis/conf/redis.conf # 插入下面內容 # aof appendonly yes # protected-mode no #password requirepass 你的密碼 docker restart redis
設定redis容器在docker啟動的時候啟動
docker update redis --restart=always
mysql同理
其它應用安裝可參考: https://www.runoob.com/docker/docker-tutorial.html
遇到的問題:
重啟伺服器
docker ps -a 提示:cannot connect to the docker daemon at unix ///var/run/docker.sock. Is the docker daemon running?
原因:
docker 容器掛了
解決方法:
dockerd // 重新執行
docker高階應用(待解鎖):
Docker Dockerfile
定製映象
Docker Compose
Compose 是用於定義和執行多容器 Docker 應用程式的工具。通過 Compose,您可以使用 YML 檔案來配置應用程式需要的所有服務。然後,使用一個命令,就可以從 YML 檔案配置中建立並啟動所有服務。
Docker Machine
Docker Machine 是一種可以讓您在虛擬主機上安裝 Docker 的工具,並可以使用 docker-machine 命令來管理主機。
Swarm叢集管理
Docker Swarm 是 Docker 的叢集管理工具。它將 Docker 主機池轉變為單個虛擬 Docker 主機。 Docker Swarm 提供了標準的 Docker API,所有任何已經與 Docker 守護程式通訊的工具都可以使用 Swarm 輕鬆地擴充套件到多個主機。