Docker的安裝:
(1)yum 包更新到最新
> yum update
(2)安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
> yum install -y yum-utils device-mapper-persistent-data lvm2
(3)設置yum源為阿里雲
> yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安裝docker
> yum install docker-ce -y
(5)安裝后查看docker版本
> docker -v
設置ustc鏡像源:
方法一: 編輯該文件:
mkdir -p /etc/docker
vim /etc/docker/daemon.json
# 在該文件中輸入如下內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
# 配置多個如下:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"registry-mirrors": ["https://0wrdwnn6.mirror.aliyuncs.com"]
}
或者方法二:設置鏡像源為阿里雲
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0wrdwnn6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
啟動與關閉docker:
# 啟動docker:
systemctl start docker
# 停止docker:
systemctl stop docker
# 重啟docker:
systemctl restart docker
# 查看docker狀態:
systemctl status docker
# 開機啟動:
systemctl enable docker
systemctl unenable docker
# 查看docker概要信息
docker info
# 查看docker幫助文檔
docker –help:
1:搜素鏡像:docker search 鏡像名稱,例如:docker search redis
2:下載鏡像的命令: docker pull 鏡像名稱[:TAG] 如果TAG不指定,那么下載的最新版本,就相當於自動增加::latest
例如:
docker pull redis:7
3:查看已下載的鏡像: docker images
4:刪除鏡像:docker rmi 鏡像名稱|鏡像ID
要是有下載好的鏡像tar包,使用 docker load -i xxx.tar(鏡像包名)相當於下載。例如:docker load -i redis.tar
容器的命令:
創建:docker run -it或者-id --name 容器名字 鏡像:tag ,例如:docker run -di --name myredis2 redis:latest
端口映射創建:docker run -it或者-id --name 容器名字 -p xxxx:yyyy 鏡像:tag,例如:
docker run -di --name myredis2 -p 6666:6379 redis:latest
目錄掛在創建:docker run -it或者-id --name 容器名字 -p xxxx:yyyy -v 宿主機目錄:容器目錄 鏡像:tag,例如:docker run -di --name mytomcat2 -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
刪除容器:docker rm 容器的id或者名字,例如:docker rm myredis
查看所有容器:docker ps -a
查看運行容器:docker ps
進入容器目錄:docker exec -it 容器名稱 (或者容器ID) /bin/bash
退出當前容器:exit
啟動容器:docker start 容器名稱(或者容器ID)
重啟容器:docker restart 容器名稱(或者容器ID)
停止容器:docker stop 容器名稱(或者容器ID)
查詢啟動日志:docker logs -f 容器id(容器名字)
注意:1.如果你刪除一個容器,必須這個容器是停止狀態,然后刪除。
如果啟動容器出錯:
# 出現如下類似錯誤
#COMMAND_FAILED: '/sbin/iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 8111 -j DNAT --to-destination 172.17.0.6:8111 ! -i docker0' failed: iptables: No chain/target/match by that name.
把網卡重新設置如下:
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
systemctl start docker
重啟docker后解決。
容器中的文件拷貝:
將文件拷貝到容器內可以使用cp命令:
docker cp 需要拷貝的文件或目錄 [容器名稱|ID]:容器目錄,例如:docker cp /usr/hello.txt mynginx:/usr/local
將文件從容器內拷貝出來:
docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄 要拷貝到宿主機的相應路徑,例如:docker cp mynginx:/usr/local/hello.txt hello.txt /usr/local
基本鏡像安裝:
docker中安裝mysql容器:
- 拉取mysql鏡像 docker pull mysql:5.7
- 創建容器 docker run -di --name mymysql5.7 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker內 tomcat的安裝:
- 拉取鏡像 docker pull tomcat:8.5.40
- 創建容器 docker run -di --name mytomcat -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:8.5.40
docker下nginx的安裝:
- 拉取鏡像 docker pull nginx
- 創建容器 docker run -di --name mynginx -p 80:80 nginx
docker下redis的安裝:
1. 拉取鏡像 docker pull redis
2. 創建容器 docker run -di --name myredis -p 6379:6379 redis
docker下rabbitmq的安裝:
- 拉取鏡像 docker pull rabbitmq:management
- 創建容器 docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
1.容器保存為鏡像:
docker commit [容器名稱|ID] 生成新的鏡像名字,例如:docker commit mynginx mynginx_i
2.鏡像備份成tar包(注意是保存在當前執行命令的宿主機上的目錄中),也就是把容器打成tar包的鏡像:
docker save -o【取的鏡像名.tar】鏡像名:[版本號] 例如: docker save -o mynginx.tar mynginx_i:latest