February 21, 2019 9:20 AM
docker經典實例學習筆記(第一章)
- ubuntu中docker的安裝
sudo apt-get update
sudo apt-get install wget
sudo wget -qO- https://get.docker.com/ | sh
#啓動docker
service docker start
#以非root的方式執行docker命令
sudo gpasswd -a <user> docker
#重啓動shell
- 在centos6.5安裝docker
sudo yum -y update
sudo yum -y install epel-release
sudo yum -y install docker-io
sudo service docker start
sudo chkconfig docker on
- 在centos7中安裝docker
sudo yum update
sudo yum -y install docker
sudo systemctl start docker
#也可以使用官方的腳本來安裝
sudo yum update
sudo curl -sSL https://get.docker.com/ | sh
- docker的常用命令
docker 停止容器的命令 docker stop containerid 或 docker kill containerid
是不會出現在docker ps中,可以通過 docker restart來重啓或者docker rm來刪除
創建docker
docker create -P --expose=1234 python:3.6 python -m SimpleHTTPServer 1234
#創建之後可以通過docker ps -a查看到這個container,需要啓動
docker start containerid
-
在單個容器中運行多個服務進程,用supervisord
也就是說在一個容器中用supervisor來同時運行多個進程 -
docker ps的一些用法介紹
docker ps 顯示運行中的containers
docker ps -a 顯示所有運行過的containers
docker ps -q 顯示運行中container的id號
docker ps -aq 顯示運行過的container的id號
docker ps -l 顯示最後創建的container -
刪除所有docker container的方法
docker stop $(docker ps -q)
docker rm -v $(docker ps -aq)
- mysql容器的使用
docker run --name mysqlwp -e MYSQL_ROOT_PASSWORD=wordpressdocker
-e MYSQL_DATABASE=wordpress
-e MYSQL_USER=wordpress
-e MYSQL_PASSWORD=wordpress
-v /home/docker/mysql:/var/lib/mysql
-d
mysql:5.6
#給mysql的整個數據庫備份
docker exec mysqlwp mysqldump --all-databases --password=wordpressdocker > wordpress.dump
-
docker容器和宿主機之間的數據共享
docker run -it -v "$PWD":/home/data ubuntu /bin/bash
查看數據的掛載點
docker inspect -f {{.Mounts}} containerid
-
docker容器之間的數據共享
如果把上面的宿主機的路徑去掉,就創建了一個稱爲數據容器的容器
docker run --name data -v /data ubuntu:16.04
查看數據的掛載點
docker inspect -f {{.Mounts}} containerid
注意:即使這個數據容器沒有運行,但是卷映射關係已經存在,並持久化到了宿主機的某個路徑中
要刪除數據容器的話,需要docker rm -v containerid
否則會有很多遺留的沒有使用的卷
而且即使是沒有數據容器在運行,也可以用–volumes-from來掛載其中卷
docker run -it --volumes-from data ubuntu:16.04 /bin/bash
-
docker cp的使用
#宿主機和容器之間的複製
docker cp c1:/home/file.txt ./file.txt
docker cp ./file.txt c1:/home/file.txt
#容器之間的複製
docker cp c1:/home/file.txt ./file.txt
docker ./flie.txt c2:/home/file.txt