Docker學習:Docker安裝和基本使用

Docker


Docek是一種容器技術。容器是一種輕量級、可移植、自打包的軟件技術,使應用程序能夠在幾乎任何地方以相同的方式運行。html

使用者能夠在筆記本上建立並測試好的容器,無需任何修改就可以在生產系統的虛擬機、物理服務器或公有云主機上運行。mysql

Docker安裝


安裝docker會用到一下命令linux

//更新apt-get
apt-get update
//安裝docker
apt-get install docker.io
//配置加速器
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://mirror.ccs.tencentyun.com",
    "https://ytji6dx6.mirror.aliyuncs.com"
  ]
}
EOF
//重啓daemon
systemctl daemon-reload
//重啓docker
systemctl restart docker

安裝截圖以下ios

第一步:更新apt-get命令

第二步:安裝docker

第三步:配置加速器

第四步:重啓daemon和Docker

Docker基本使用

docker運行

docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

說明:git

docker run:docker從鏡像啓動一個容器命令github

--name:這是docker run命令的參數,給要啓動的容器起個名字sql

-p:端口映射,前面的是宿主端口號,後面的是容器端口號docker

-v:掛載宿主機目錄到鏡容器裏,前面的是宿主機目錄,後面的是容器目錄,那麼後面的目錄爲何是/var/lib/mysql呢?執行docker inspect -f {{.Config.Volumes}} bob-mysql就能夠看到了數據庫

-e——指的是環境變量,在啓動MySQL鏡像時,能夠傳入一個或多個環境變量修改MySQL實例的配置。這裏必定要注意的是啓動容器的數據目錄已經包含了數據庫,這時環境變量就不起做用了。json

MySQL鏡像支持一下環境變量
MYSQL_ROOT_PASSWORD —— 設置MySQL root用戶的密碼
MYSQL_DATABASE —— 指定在鏡像啓動時建立的數據庫名稱,若是同時指定了MYSQL_USER, MYSQL_PASSWORD,則會授予該用戶對這個數據庫ALL的權限(GRANT ALL)
MYSQL_USER, MYSQL_PASSWORD —— 建立一個用戶並設置它的密碼
MYSQL_ALLOW_EMPTY_PASSWORD —— 設置爲yes容許容器啓動時root用戶密碼留空
MYSQL_RANDOM_ROOT_PASSWORD —— 爲root用戶生成隨機密碼(使用pwgen)
MYSQL_ONETIME_PASSWORD —— 設置root用戶初始化完後過時,強制登陸時修改密碼。注意這個功能只支持MySQL 5.6+

查看鏡像版本

docker version

鏡像下載

docker pull mysql:5.6

說明:

  1. 這裏mysql:5.6是鏡像名稱和版本號,如果不肯定版本,可使用docker pull mysql則直接下載最新的版本

查詢鏡像

docker image ls

刪除鏡像

docker rmi mysql

查看運行的容器

docker ps

說明:

docker ps -a:顯示全部的容器

docker ps:顯示運行的容器

更多命令使用方法docker ps --help

進入容器

docker exec -it id /bin/bash

查看容器日誌

# 退出容器
docker logs -f id

容器中止/啓動

docker stop/start id

刪除容器

docker rm 容器id

倉庫登陸

docker login

鏡像構建

# 使用Dockerfile建立名爲 yucy/mysql的鏡像
docker build --rm=true -t yucy/mysql

鏡像打tag

# 將鏡像ubuntu:16.04標記爲 yucy/ubuntu:V1 鏡像
docker tag ubuntu:16.04 yucy/ubuntu:V1

鏡像推送

docker push 註冊用戶名/鏡像名

安裝問題解決

第一次安裝virtualbox的時候,沒有設置虛擬電腦的保存路徑,致使C盤爆滿,具體可參考Docker學習:virtualbox安裝和配置,下面是另一個很糾結的問題,直到今天才解決!!!

第一次使用docker pull mysql時,一直提示no matching manifest for unknown in the manifest list entries在網上查找了不少資料,有解決方法是windows上配置daemon.json中增長配置"experimental": true,但是本機是linux虛擬機,在json文件中增長了這個配置選項,再次pull鏡像還是出錯。

後來反覆查看虛擬機ios文件和docker的安裝要求,發現是虛擬機的版本問題,從新安裝ubuntu-16.04.6-server-amd64的虛擬機,問題圓滿解決🌛。出現這個文件主要是由於虛擬機安裝時的版本選擇的是64位的,但是加載的iso文件倒是32位的,因此出現了上面的問題。

參考:

https://github.com/KeKe-Li/docker-directive

https://www.runoob.com/docker/docker-image-usage.html

相關文章
相關標籤/搜索