Docker 实战笔记
Docker的安裝與配置
CentOS
前提條件
目前,CentOS 僅在發行的版本中的內核支持Docker
Docker 運行在CentOS 7 上要求系統為64位,系統內核版本在3.10以上。本次測試運行使用的是 centOS 7.2 64位的系統版本。
使用代碼 uname -r即可查看系統內核版本
Docker軟件已經包括在默認的CentOS-Extras軟件源中。因此想要安裝Docker,只需要運行下面的yum命令:
yum install docker-io -y直接yum安裝,查看版本來看docker是否安裝完成
docker -v啟動docker服務
service docker start設置開機自啟動
chkconfig docker on由于國內訪問 Docker Hub 比較慢,可以使用騰訊云提供的國內鏡像源,加速訪問 Docker Hub 。依次執行以下命令:
echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/dockersystemctl daemon-reload
service docker
Ubuntu
Docker 要求Ubuntu 系統的內核版本高于3.10,通過uname -r命令查看當前的內核版本
本次測試使用的Ubuntu 系統為Ubuntu Server 16.04.1 LTS 64位
驗證一下Docker 有沒有安裝成功
docker -v安裝成功,因為要使用docker hub 的原因,在這里我們需要添加一個國內的鏡像,這里我們使用阿里云的。修改daemon配置文件/etc/docker/daemon.json來使用加速器
1. ?sudo mkdir -p /etc/docker 2. ?sudo tee /etc/docker/daemon.json <<-'EOF' 3. ?{ 4. ? ? ? ? ?"registry-mirrors": ["https://dmmxhzvq.mirror.aliyuncs.com"] 5. ?} 6. ?EOF 7. ?sudo systemctl daemon-reload 8. ?sudo systemctl restart dockerWindows
Docker在Windows中需要使用虛擬機才能夠運行,目前支持的版本是Windows 10以及Windows server 2016。在Windows 7中進行安裝測試,無法安裝。截圖如下。
docker 的基本操作命令
刪除
殺死所有正在運行的容器
docker kill $(docker ps -a -q)刪除所有已經停止的容器
docker rm $(docker ps -a -q)刪除所有未打dangling 標簽的鏡像
docker rmi $(docker images -q -f dangling=true)通過鏡像的id來刪除指定鏡像
docker rmi <image id>刪除所有鏡像
docker rmi $(docker images -q)查看
查看正在運行的容器
docker ps查看所有的容器
docker ps -a查看本地的所有鏡像
docker images -a查看本地鏡像中REPOSITORY為centos的鏡像
docker images centos配置鏡像
下載鏡像
docker pull [image name]:[tag]登錄到倉庫(默認為docker hub)
docker login -u [用戶名] -p [密碼]登出倉庫
docker logout將本地鏡像上傳到鏡像倉庫(需要先登錄到倉庫)
docker push [image name]:[tag]容器
強制刪除容器db01,db02(-f:通過SIGKLL信號強制刪除一個運行中的容器)
dokcer rm -f db01、db02刪除容器db01 ,并刪除容器掛載的數據卷(-v:刪除與容器關聯的卷)
dokcer rm -v db01實踐中遇到的錯誤
1.鏡像無法刪除
docker rmi $(docker images -q)
理論上應該可以刪除全部鏡像,但是實際操作中卻出現了問題。于是只能單獨進行刪除
docker rmi <image id>如果有image id相同,會出現以下錯誤
Error response from daemon: conflict: unable to delete d231ef002eba (must be forced) - image is referenced in one or more repositories
那么可以使用name:tag進行刪除.
docker rmi <image name>:<tag>問題即可解決
2.job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.和Cannot connect to the Docker daemon. Is the docker daemon running on this host?的問題解決
起因:騰訊云服務器我給他重啟了之后,發現docker 命令就一直報 Cannot的錯誤。
這可能有兩個原因:
1.docker服務沒有啟動;
2.docker沒有相關的權限;
原因2呢,用sudo取得權限就行。
但是這次的問題是原因1,那么就啟動唄
但是就得到了下列這樣的問題
那怎么解決呢,首先看一下/etc/docker/daemon.json這個文件存不存在,如果存在那就看看里面的內容出了什么問題。
cd /etc/docker vim daemon.json然后你把下面的代碼放進去,就可以啦
{ "storage-driver": "devicemapper" }如果daemon.json文件包含格式不正確的JSON,Docker將無法啟動。
然后重啟一下docker
service docker startok!運行沒得問題咯。
實例1:wordpress+mysql
安裝相關鏡像
從鏡像庫(默認是Docker hub )中查詢是否有鏡像文件
docker search mysql將所需鏡像文件下載到本地
docker pull mysql查詢是否成功
docker images好的本地庫中有了mysql鏡像,再下載一個wordpress鏡像
先啟動mysql
docker run --name lir_mysql -e MYSQL_ROOT_PASSWORD=lir123 -d mysql--name lir_mysql 給容器命名為lir_mysql
-e 設置環境變量
-d 后臺運行容器,并返回容器ID
先檢查一下有沒有運行成功
docker ps好的,運行成功了!再啟動wordpress和mysql鏈接一下
docker run --name lir_wordpress --link lir_mysql:mysql -p 8080:80 -d wordpress--link添加鏈接到另一個容器
-p默認將容器的80端口映射到主機的隨機端口
-p 8080:80將容器的80端口映射到主機的8080端口
好的,檢查一下
docker ps容器沒問題!
打開網站看一下
配置一下wordpress信息,ok!8080端口
當然我們還可以使用fig來對wordpress配置。但是在這里不作演示說明
安裝 aspnet和iis
在docker hub 官方鏡像庫中,微軟有自己的官方發布的iis和asp.net,以及asp.net core鏡像。
在騰訊云的鏡像加速下,centos 服務器進行pull這些鏡像。
無法成功!可能是國內的鏡像庫并沒有這些鏡像,所以拉取docker hub,但是docker hub在國內沒有鏡像服務,加之國情如此。。。
換Ubuntu系統,使用docker hub mirror 進行加速服務,首先要先注冊賬號,然后使用命令,將自有的主機注冊到docker hub mirror中
curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s xxxxxx為注冊賬號的id
配置成功后的信息
相關的docker容器可視化服務有很多,但是大部分都是收費的。企業用必須自己搭建自己的鏡像服務器和相關管理系統
在Ubuntu服務器中pull iis和aspnet的官方鏡像。發現如下問題
沒錯,linux系統中的docker無法跑起官方的aspnet和iis鏡像,錯誤信息提示,windows鏡像無法跑起來(Windows 的docker只能在windows server 2016/windows 10上跑的,無法跑在Linux上的)。
安裝vm虛擬機,準備在win7中跑一個win10 64和一個windows server 2016,然而出現了下面的情況
這個問題解決需要在本機BIOS中進行相關設置。
原文地址:http://www.jianshu.com/p/b3f3cb119121
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的Docker 实战笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring cloud+dotnet
- 下一篇: 基于Office 365的随需应变业务应