1. 程式人生 > >Docker容器學習

Docker容器學習

lte 密碼 效率 環境 restrict 項目發布 inspect this --

Docker學習

docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,
然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

優點:1.提高效率,方便快捷(容器系統資源開銷低) 2.沙箱機制,互不幹擾 3.集群部署,負載均衡

Client docker CLI(命令行界面工具的客戶端)-->REST API-->docker daemon(服務器,守護進程)

swarm:docker容器的集群和調度工具。

安裝docker:
root賬戶進入/etc/apt/:
curl -sSL https://get.daocloud.io/docker | sh(ps:安裝比較慢,請耐心等待)
將zhangmy用戶加入docker組:
sudo usermod -aG docker zhangmy(重新登錄即可查看docker version,代表加入組成功)
配置docker加速器(root):
vi /lib/systemd/system/docker.service
將ExecStart行改為ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ac.mirror.aliyuncs.com
systemctl daemon-reload
service docker restart
systemctl status docker.service

克隆docker虛擬器。

用docker容器打印:docker run ubuntu:15.10 /bin/echo "Hello World"

查看docker鏡像:docker images

查看運行中的容器:docker ps

查看容器:docker ps -a

刪除容器:docker rm (容器id)

運行ubuntu:15.10進入容器內:docker run -it ubuntu:15.10 /bin/bash

容器在宿主機上運行。

死循環容器:docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello docker; sleep 1; done"

停止容器運行:docker stop (容器id)

查看更多的docker命令:docker command --help

docker run -d -P training/webapp python app.py
docker 運行 在後臺 將容器映射到數組機上 鏡像為training/webapp python命令 啟動app.py

docker run -d -p 8888:5000 training/webapp python app.py 發布到8888端口下。

查看容器進程:docker top 容器id(或名稱)

查看容器進程的底層信息:docker inspect 容器id(或名稱)

交互式進入docker容器:docker exec -it 容器id(或名稱) /bin/bash

docker hub鏡像倉庫

獲取tomcat鏡像:docker pull tomcat(可以+:+tomcat版本)

查找鏡像:docker search tomcat(ps:[ok]代表官方的版本 stars代表使用次數)

更新鏡像配置數據源並保存:
docker run -it ubuntu:15.10 /bin/bash
cd /etc/apt
echo deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse > sources.list
echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse >> sources.list
echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse >> sources.list
echo deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse >> sources.list
cat sources.list
apt-get update
apt-get install vim
apt-get update
exit
docker commit -m"install vim" -a="zhangmy" 鏡像id zhangmy/ubuntu:v2
docker images(即可查看到鏡像已保存)

創建鏡像:
root進入/usr/local創建/docker/myubuntu目錄
vi Dockerfile
輸入:
FROM ubuntu:15.10
MAINTAINER [email protected]
RUN /bin/bash -c ‘echo "Hello World"‘
COPY test.txt /home
WORKDIR /home
EXPOSE 80
EXPOSE 8080
CMD [" /bin/echo", " this is a echo test"]
docker build -t zhangmy/myubuntu .

設置鏡像標簽:docker tag 鏡像id zhangmy/myubuntu:v2(即可新增一個標簽[TAG]為v2的鏡像)

刪除鏡像:docker rmi 鏡像id

tomcat啟動:
docker run --name tomcat -p 8080:8080 -d tomcat
使用docker運行一個名字叫做tomcat的容器將宿主機的8080端口映射到容器的8080端口,在後臺運行使用tomcat鏡像。
交互式進入tomcat容器,將項目發布在webapps裏即項目發布成功。

安裝mysql(ps:root賬戶):
docker pull mysql
{sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
下面的不能用用這個,再交互式修改mysql的root賬戶密碼:
docker exec -it mysql /bin/bash
mysql -u root -p
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘123456‘;
}
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
ps:-p指定映射端口 --name指定容器名稱 -v指定數據卷 -e指定環境變量 -d後臺運行

部署docker項目:
將項目的sms_op.war包上傳到download
cd /usr/local/docker/tomcat/sms_op
vi Dockerfile
FROM tomcat
MAINTAINER zhangmy
ADD sms_op.war /usr/local/tomcat/webapps/sms_op.war
mv sms_op.war /usr/local/docker/tomcat/sms_op
docker build -t zhangmy/sms_op .
docker run -it zhangmy/sms_op /bin/bash
修改數據庫連接池(依據項目進行修改)。
docker run --name sms_op -d -p 8080:8080 zhangmy/sms_op

Docker容器學習