docker run -d -p 80:80 nginx run (建立並運行一個容器) -d 放在後臺 -p 端口映射 nginx docker鏡像的名字
vi /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] } systemctl restart docker
一、傳統編譯安裝nginx:html
官網下載Nginx源碼包wget tar解壓源碼包 建立Nginx用戶 安裝依賴包 編譯安裝三部曲configure,make,make install 修改nginx配置文件 啓動nginx
二、docker容器mysql
docker run -d -p 80:80 nginx
docker search
選鏡像的建議:
1,優先考慮官方
2,starts數量多linux
docker pull(push)
鏡像加速器:阿里雲加速器,daocloud加速器,中科大加速器,Docker 中國官方鏡像加速:https://registry.docker-cn.comnginx
docker pull centos:6.8(沒有指定版本,默認會下載最新版) docker pull daocloud.io/huangzhichong/alpine-cn:latest
擴展:查詢docker鏡像全部版本https://hub.docker.com/r/library/sql
一、查看鏡像docker
docker images
二、刪除鏡像json
docker rmi 例子:docker image rm centos:latest
三、導出鏡像centos
docker save 例子:docker image save centos > docker-centos7.4.tar.gz
docker save mysql:5.7> mysql-5.7.tar.gz
四、導入鏡像bash
docker load 例子:docker load -i docker-centos7.4.tar.gz
docker run -d -p 80:80 nginx:latest run (建立並運行一個容器) -d 放在後臺 -p 端口映射 nginx:latest docker鏡像的名字和版本 還有不少其餘的參數 docker run == docker create + docker start
進入容器的目的:排錯,調試網絡
進入容器的方法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 例子: docker exec -it 容器id或容器名字 /bin/bash docker attach [OPTIONS] CONTAINER 例子: docker attach 容器id或容器名字 nsenter(安裝yum install -y util-linux 棄用)
一、中止容器
docker stop CONTAINER_ID
二、殺死容器
docker kill container_name
三、查看容器列表
docker ps docker ps –a docker ps –a -l
四、刪除容器
docker rm
五、批量刪除容器
docker rm -f `docker ps -a -q`
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
若是使用docker-compose命令將是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
docker run -it --name centos6 centos:6.8 /bin/bash -it 分配交互式的終端 --name 指定容器的名字 /bin/sh 覆蓋容器的初始命令 --cpus 指定cpu的數量 --memory 限定內存的大小 -h 指定容器的主機名
docker的本質是:在隔離的環境運行的一個進程
因此:docker容器內的第一個進程必須一直處於前臺運行的狀態(必須夯住),不然這個容器,就會處於退出狀態!
默認,狀況下,容器使用的ip是172.17.0.0/16網段的,外界的用戶只能訪問宿主機的10.0.0.0/24網段,
沒法訪問172.17.0.0/16網段。咱們運行容器的目的:是但願運行在容器中的服務,可以被外界訪問,
這裏就涉及到了外網10.0.0.0/24到容器內網172.17.0.0/16網段的轉換,因此須要作端口映射
-p hostPort:containerPort -p ip:hostPort:containerPort -p ip::containerPort(隨機端口) -p hostPort:containerPort:udp -p 81:80 -p 443:443 能夠指定多個-p
docker run -P (隨機端口)
1:持久化容器運行過程當中產生的數據文件
2:實現多個容器間的文件共享。
正常狀況下,刪除容器,容器中全部的文件也會被刪除
一、建立一個數據卷
docker volume create
二、查看數據卷列表
docker volume ls
三、刪除一個數據卷
docker volume rm
四、查看一個數據卷的屬性
docker volume inspect
docker volume create luoahong docker run -d -p 80:80 -v luoahong:/usr/share/nginx/html nginx:latest cd /var/lib/docker/volumes/luoahong/_data/ rm -f * wget https://www.qstack.com.cn/xiaoniaofeifei.zip unzip xiaoniaofeifei.zip docker run -d -p 81:80 -v luoahong:/usr/share/nginx/html nginx:latest docker run -d -p 82:80 -v luoahong:/usr/share/nginx/html nginx:latest
cd /opt mkdir xiaoniao cd xiaoniao/ wget https://www.qstack.com.cn/xiaoniaofeifei.zip unzip xiaoniaofeifei.zip
重點
docker run -d -p 83:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest