一、倉庫、鏡像、容器
官方docker hub
官方:https://hub.docker.com/explore/
常用docker 國內鏡像源:
網易鏡像中心:http://hub-mirror.c.163.com
阿里鏡像中心:https://dev.aliyun.com
Docker 官方中國區:https://registry.docker-cn.com
ustc: https://docker.mirrors.ustc.edu.cn
daocloud:https://hub.daocloud.io/
docker國內免費加速器:
daocloud:https://***(自己注冊的私有賬號).m.daocloud.io
aliyun:https://***(自己注冊的私有賬號).mirror.aliyuncs.com
修改方法
- 直接設置 –registry-mirror 參數,僅對當前的命令有效
docker run hello-world --registry-mirror=https://docker.mirrors.ustc.edu.cn
- 修改 /etc/default/docker,加入 DOCKER_OPTS=”鏡像地址”,可以有多個
DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn"
- 支持 systemctl 的系統,通過 sudo systemctl edit docker.service,會生成 /etc/systemd/system/docker.service.d/override.conf 覆蓋默認的參數,在該文件中加入如下內容:
[Service]
ExecStart=
ExecStart=/usr/bin/docker -d -H fd:// --registry-mirror=https://docker.mirrors.ustc.edu.cn - 新版的 Docker 推薦使用 json 配置文件的方式,默認為 /etc/docker/daemon.json,非默認路徑需要修改 dockerd 的 –config-file,在該文件中加入如下內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
二、Docker安裝步驟
以下以ubuntu18.04 安裝為例:
1.首先更新資源update
sudo apt-get update
2.安裝docker
sudo apt-get install docker
sudo apt-get install docker.io
sudo apt-get install docker-registry
3.停止、啟動、重啟docker
4. 查看docker版本
sudo docker version
5.加入開機自啟
sudo systemctl enable docker
6.運行hello-world鏡像來測試是否安裝成功
docker run hello-world
#本地沒有鏡像時會自動從docker hub中下載
三、docker創建常見容器
1.創建nginx 容器:
sudo docker run -d -p 80:80 hub.c.163.com/library/nginx #鏡像地址可以登錄163鏡像源進行查找
2.創建mysql 容器:
sudo docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest
3.創建tomcat容器:
sudo docker pull hub.c.163.com/library/tomcat:latest
4.通過ubutnu18.04鏡像創建一個容器:
sudo docker create ubuntu:18.04 #從默認鏡像地址進行查找
4.開始運行容器,並進入鏡像的bash終端
sudo docker run -i -t ubuntu:18.04 /bin/bash
四、在docker中部署JAVA應用
~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest 2cb0d9787c4d 7 weeks ago 1.85kB hub.c.163.com/library/tomcat latest 72d2be374029 12 months ago 292MB hub.c.163.com/library/nginx latest 46102226f2fd 16 months ago 109MB hub.c.163.com/library/mysql latest 9e64176cd8a2 16 months ago 407MB
2. 創建Dockfile
文件內容如下:(wordpress.war 是待部署的war包)
from hub.c.163.com/library/tomcat MAINTAINER jeff xxxxxxx@163.com COPY workpress.war /usr/local/tomcat/webapps
創建從當前目錄讀取Dockerfile文件,創建一個名字為wordpress,tag為latest的鏡像:
~$ sudo docker build -t wordpress:latest .
查看創建結果:
~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE wordpress latest 157b922155fb 5 hours ago 313MB hello-world latest 2cb0d9787c4d 7 weeks ago 1.85kB hub.c.163.com/library/tomcat latest 72d2be374029 12 months ago 292MB hub.c.163.com/library/nginx latest 46102226f2fd 16 months ago 109MB hub.c.163.com/library/mysql latest 9e64176cd8a2 16 months ago 407MB
3.運行容wordpress java應用
~$ sudo docker run -d -p 8080:8080 wordpress
查看所有正在運行的容器:
~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d585c289bd07 wordpress "catalina.sh run" 4 hours ago Up 6 seconds 0.0.0.0:80->8080/tcp quizzical_williams b759ed79b2cc hub.c.163.com/library/mysql:latest "docker-entrypoint.s…" 4 hours ago Up 15 seconds 0.0.0.0:3307->3306/tcp happy_poitras 429e193db808 hub.c.163.com/library/nginx "nginx -g 'daemon of…" 7 hours ago Up 10 seconds 0.0.0.0:32768->80/tcp elastic_noyce
4.測試訪問
http://localhost:8080/wordpress
五、其他常用命令
docker ps 查看當前正在運行的容器
docker ps -a 查看所有容器的狀態
docker start/stop id/name 啟動/停止某個容器
docker images 查看本地鏡像
docker rm id/name 刪除某個容器
docker rmi id/name 刪除某個鏡像
docker build -t soar/centos:7.1 . 通過當前目錄下的Dockerfile創建一個名為soar/centos:7.1的鏡像
docker run -d -p 2222:22 --name test soar/centos:7.1 以鏡像soar/centos:7.1創建名為test的容器,並以后台模式運行,使用小寫p參數做端口映射到宿主機2222端口,而大寫P參數重啟容器宿主機端口會發生改變