docker安裝
- sudo yum update
- sudo yum install -y yum-utils device-mapper-persistent-data 1vm2
- sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- sudo yum install docker-ce
- docker -v
docker的停止與啟動
- 啟動:systemctl start docker
- 停止:systemctl stop docker
- 重啟:systemctl restart docker
- 查看狀態:systemctl status docker
- 開機啟動:systemctl enable docker
docker的信息查看:
docker info
docker幫助信息
docker help
docker鏡像
- 查看鏡像: docker images
- 搜索鏡像: docker search [鏡像名]
例如: docker search centos - 拉取鏡像: docker pull [鏡像名]
例如: docker pull centos:7 - 刪除鏡像:
刪除鏡像所對應的所有容器:docker rm [容器名或者ID]
刪除鏡像:docker rmi [鏡像ID] - 刪除所有鏡像: docker rmi 'docker images -q' (注意:這里的 ' 是鍵盤左上角的 ` 符號
docker容器
- 查看容器: docker ps -a
- 查看運行容器: docker ps
- 創建容器: docker run [命令]
-i : 表示運行容器
-t : 容器啟動后進入命令行
--name : 為容器命名
-v : 目錄映射關系
-d : 創建守護式容器在后臺運行
-p : 端口映射
例如:
交互式方式創建容器:
docker run -it --name=mycentos centos:7 /bin/bash
守護式方式創建容器:
docker run -di --name=mycentos2 centos:7 /bin/bash - 進入容器: docker exec -it mycentos2 /bin/bash
- 退出容器 : exit
- 停止容器: docker stop [容器名或者ID]
例如: docker stop mycentos2 - 啟動容器: docker start [容器名或者ID]
例如: docker start mycentos2 - 文件拷貝
例如:
將a.txt文件拷貝到docker容器/usr/local目錄里面:docker cp a.txt mycentos2:/usr/local
將a.txt文件從docker容器拷貝出來:docker cp mycentos2:/usr/local/a.txt /home/dev/ - 文件掛載
將dapp.html文件和docker里面文件做映射關系
例如:
docker run -di --name=mycentos3 -v /var/www/html/dapp.html:/var/www/html/dapp.html centos:7
查看掛載的信息:docker inspect [容器名]
例如:
docker inspect mycentos3
提取掛載信息里面某個字段:
例如:
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3 - 刪除容器
停止運行的容器: docker stop [容器名或者ID]
刪除容器: docker rm [容器名或者ID]
應用部署
- mysql 部署
拉取mysql鏡像:docker pull centos/mysql-57-centos7
創建mysql容器:
docker run -di --name=docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
如果是云服務器,打開安全組配置,開放33306端口
本地用工具連接mysql - tomcat 部署
拉取tomcat鏡像:docker pull tomcat:7-jre7
創建容器并掛載:
docker run -di --name=docker_tomcat -p 9000:8080 -v /usr/local/tomcat/apache-tomcat-8.5.35/webapps:/usr/local/tomcat/apache-tomcat-8.5.35/webapps tomcat:7-jre7
如果是云服務器,打開安全組配置,開放9000端口
瀏覽器訪問:ip:9000 - nginx 部署
拉取nginx鏡像:docker pull nginx
創建nginx容器:docker run -di --name=docker_nginx -p 90:80 nginx
nginx修改配置文件地址: /etc/nginx/conf.d/default.conf
拷貝文件到nginx目錄下:docker cp /var/www/html/dapp.html docker_nginx:/usr/share/nginx/html/ - redis 部署
拉取redis鏡像:docker pull redis
創建redis容器:docker run -di --name=docker_redis -p 16379:6379 redis
容器遷移與備份
- 容器保存為鏡像:
docker commit docker_nginx docker_nginx_1 - 啟動新鏡像:
docker run -di --name=docker_nginx_2 -p 81:80 docker_nginx_1 - 瀏覽器訪問:ip:81
- 鏡像備份:
docker save -o docker_nginx_1.tar docker_nginx_1 - 在當前目錄下就會生成docker_nginx_1.tar文件
- 鏡像恢復與遷移:
將生成的docker_nginx_1.tar文件拷貝到另一臺服務器
恢復鏡像:docker load -i docker_nginx_1.tar
查看是否恢復: docker images