一、安裝配置python
curl -sSL https://get.daocloud.io/docker | sh
sudo usermod -aG docker wayne --非root用戶運行docker前須要執行
service docker start --啓動
--配置加速器
vi /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H --registry-mirror=https://jxus37ac.mirror.aliyuncs.com
systemctl daemon-reload
service docker restartmysql
二、使用nginx
--啓動容器
docker run ubuntu:15.10 /bin/echo "Hello Docker"
--ubuntu:15.10 鏡像名稱
--/bin/echo "Hello Docker" 在啓動的容器裏執行的命令
--運行交互式的容器
docker run -it ubuntu:15.10 /bin/bash
--可進入容器內的終端,退出用exit
--運行持續進行的容器
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello docker; sleep 1; done"
--進入容器
docker exec -it mysql bashgit
三、容器管理github
--默認端口映射32771->5000
docker run -d -P training/webapp python app.py
-d:讓容器在後臺運行
-P:將容器內部使用的網絡端口映射到咱們使用的主機上
--自定端口映射5000->5000
docker run -d -p 5000:5000 training/webapp python app.py
docker logs -f amazing_archimedes --查看日誌
docker top amazing_archimedes --查看容器內部運行的進行
docker inspect amazing_archimedes --查看容器配置和狀態信息
docker stop amazing_archimedes --根據容器名關閉正在運行的容器
docker start amazing_archimedes --根據容器名啓動正在運行的容器
docker restart amazing_archimedes --根據容器名重啓正在運行的容器
docker ps --查看在運行的容器
docker ps -a --查看歷史容器
docker ps -l --查詢最後一次建立的容器
docker rm 9490b017fdf6 5198a90e2406 --刪除容器
docker logs -f 5198a90e2406 --查看日誌web
四、鏡像管理sql
docker images --查看鏡像列表
docker rmi 923871df4489 --刪除鏡像
docker run -it ubuntu:15.10 /bin/bash
--使用鏡像生成容器並運行容器,不指定版本15.10,會自動下載最新版ubuntu:latest
docker pull ubuntu:14.04 --主動下載鏡像
docker search ubuntu --查詢官方服務上的鏡像
--根據容器生成新鏡像
docker commit -m="has update" -a="wayne" 923871df4489 wayne/ubuntu:v1
-m:提交的描述信息
-a:指定鏡像做者
9a3dcafd7a83:容器ID
wayne/ubuntu:v1:指定要建立的目標鏡像名
--使用Dockerfile構建鏡像
cd /usr/local
mkdir docker
mkdir myubuntu
vi Dockerfile
FROM ubuntu:latest --必須是首條指令 from 鏡像源
MAINTAINER wayne --做者
RUN /bin/echo 'root:123456' |chpasswd --修改密碼
RUN useradd wayne --新增用戶
RUN /bin/echo 'wayne:123456' |chpasswd --修改密碼
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local --寫入值(此處爲編碼格式配置)
RUN /bin/bash -c 'echo "Hello world!"' --執行命令
COPY 1.txt /home --宿主機中的1.txt複製到鏡像中的home中
WORKDIR /home --指定工做目錄,能夠不寫
EXPOSE 22 --開放端口號
EXPOSE 80
EXPOSE 8080
EXPOSE 3306
CMD /usr/sbin/sshd -D --只能有一個CMD:CMD ["/bin/echo","tttt"]
docker build -t wayne/myubuntu:v2 . --構建鏡像
docker run -it wayne/myubuntu:v2 /bin/bash --使用建立的鏡像構建容器
id wayne
docker tag feca3060c8ec wayne/myubuntu:v3 --爲鏡像打標籤,(建立一個版本)docker
五、數據卷shell
方法一:dockerfile 中指定 VOLUME 後的目錄,如 VOLUME /var/lib/test
方法二:docker run 命令中加 -v 選項。如:
docker run -d -P -v /webapp training/webapp python app.pyubuntu
六、安裝Tomcat鏡像
docker search tomcat
docker pull tomcat
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
http://192.168.1.7:8980/
-p 8080:8080 --將容器的8080端口映射到主機的8080端口
-v $PWD/test:/usr/local/tomcat/webapps/test --將主機中當前目錄下的test掛載到容器的/test
七、安裝mysql鏡像
docker search mysql
docker pull mysql
--啓動容器
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--單純啓動
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--進入容器
docker exec -it mysql bash
--登陸mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
--添加遠程登陸用戶
CREATE USER 'wayne'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'wayne'@'%';
八、docker-compose
--安裝
在https://github.com/docker/compose/releases/tag/1.14.0-rc2下載:docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose --修改權限
docker-compose version --查看環境
rm /usr/local/bin/docker-compose --卸載docker-compose
--使用
vi /usr/local/docker/docker-compose/docker-compose.yml
version: '3'
services:
tomcat: --同-容器名
restart: always
image: tomcat --鏡像名
container_name: tomcat --容器名
ports:
- 8080:8080
volumes:
- /usr/local/docker/tomcat/webapps/test:/usr/local/tomcat/webapps/test
environment:
TZ: Asia/Shanghai
version:指定腳本語法解釋器版本
services:要啓動的服務列表
webapp:服務名稱,能夠隨便起名,不重複便可
restart:啓動方式,這裏的 always 表示老是啓動,即便服務器重啓了也會當即啓動服務
image:鏡像的名稱,默認從 Docker Hub 下載
container_name:容器名稱,能夠隨便起名,不重複便可
ports:端口映射列列表,左邊爲宿主機端口,右邊爲容器端口
docker-compose up --運行
docker-compose up -d --後臺運行
docker-compose start --啓動
docker-compose stop --中止
docker-compose down --中止並移除容器
http://192.168.137.12:8080/
http://192.168.1.7:8980/
九、GitLaban安裝
--安裝version: '3'services: gitlab: image: 'twang2218/gitlab-ce-zh:10.5' restart: always hostname: '192.168.137.12' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.137.12:8080' gitlab_rails['gitlab_shell_ssh_port'] = 2222 unicorn['port'] = 8888 nginx['listen_port'] = 8080 ports: - '8080:8080' - '8443:443' - '2222:22' volumes: - /usr/local/docker/gitlab/config:/etc/gitlab - /usr/local/docker/gitlab/data:/var/opt/gitlab - /usr/local/docker/gitlab/logs:/var/log/gitlabdocker-compose up -d