Docker的安装
先查看是否存在docker
docker -v
发现docker版本太低了,直接卸载掉旧版本,应为低版本docker会影响如harbor等软件的安装,卸载命令如下
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源:
- 阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 中科大
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
查询docker版本
yum list docker-ce --showduplicates|sort -r
安装指定版本
yum install docker-ce.x86_64 3:20.10.6-3.el7
安装完成 查看版本
docker -v
结果如下
Docker version 20.10.6, build 370c289
使用docker
打开docker
systemctl start docker
查看状态
systemctl status docker
停止docker
systemctl stop docker
重启docker服务
systemctl restart docker
镜像
查看docker的镜像
docker images
拉取一个centos镜像
docker pull centos:7
删除镜像 也可以根据id删除
docker rmi hello-world
加载本地tar镜像
docker load -i tar文件名
容器
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
启动一个容器
docker start CONTAINER_ID
停止一个容器
docker stop CONTAINER_ID
重启一个容器
docker restart CONTAINER_ID
删除一个容器 (正在运行中的容器必须要先停止后才能删除)
docker rm CONTAINER_ID
删除全部容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
查看有哪些网络
docker network ls
交互式容器
docker run -it --name=mycentos7 centos:7 /bin/bash
守护式容器 exit退出后 容器仍然运行
docker run -di --name=mycentosllp centos:7
进入容器
1.docker exec -it 8bc260647f84 /bin/bash
2.docker exec -it mycentosllp /bin/bash
宿主机拷贝数据到容器中
docker cp llp.txt 8bc260647f84:/
容器数据拷贝到宿主机中
docker cp 8bc260647f84:/llp.txt /root
挂载虚拟目录
docker run -di -v /home/llpdocker_virtual:/home/llpdocker_virtual --name=mycentosvirtual centos:7
该创建方式可能在容器中 没有root权限
带有权限的创建
docker run -di --privileged=true -v /home/llpdocker_virtual:/home/llpdocker_virtual --name=mycentosvirtual centos:7
查看容器的Ip
docker inspect name/id
其他容器的部署
mysql
拉取镜像
docker pull docker.io/centos/mysql-57-centos7
运行容器
docker run -di --name=mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ROOT centos/mysql-57-centos7
进入 容器
docker exec -it 4f35f2a2e6e3 /bin/bash
登录数据库
mysql -uroot -p
nginx
拉取镜像
docker pull nginx
运行容器
docker run -di --name=llpnginx -p 10001:80 nginx
进入容器
docker exec -it llpnginx bash
redis
拉取镜像
docker pull redis
运行容器
docker run -di --name=llpredis -p 10002:6379 redis
进入容器
docker exec -it llpredis /bin/bash
进入数据行命令
cd /usr/local/bin
ps
进入redis-cli目录下
cd /usr/local/bin/
启动客户端
./redis-cli
docker compose
下载
curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose-
(
u
n
a
m
e
−
s
)
−
(uname -s)-
(uname−s)−(uname -m)” -o /usr/local/bin/docker-compose
curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
ps 国内高速下载地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
将可执行权限应用于二进制文件
chmod +x /usr/local/bin/docker-compose
创建软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看版本信息
docker-compose --version
创建目录
mkdir /usr/local/llpcompose
进入目录
cd /usr/local/llpcompose
创建并编辑docker-compose yml文件
vim docker-compose.yml
version: '3'
services:
redisllp:
image: redis
ports:
- "9001:6379"
container_name: "redisllp"
networks:
- dev
mysqlllp:
image: centos/mysql-57-centos7
environment:
MYSQL_ROOT_PASSWORD: "123456"
ports:
- "9002:3306"
container_name: "mysqlllp"
networks:
- dev
nginxllp:
image: tomcat
ports:
- "9003:8080"
container_name: "nginxllp"
networks:
- dev
- pro
networks:
dev:
driver: bridge
pro:
driver: bridge
创建镜像
a.根据容器创建一个镜像
docker commit 容器名称 镜像名称
b.将已有镜像保存为tar 文件 (可以通过load方式加载)
docker save –o 文件名.tar 镜像名
加载一个本地镜像,加载后可以重新创建一个容器
docker load -i 文件名.tar
利用dockerfile创建一个包含aspnetcore-runtime-3.1.7的镜像
Dockerfile配置
FROM centos:7
MAINTAINER ITCAST
WORKDIR /usr
RUN mkdir /usr/local/core3.1
ADD aspnetcore-runtime-3.1.7-linux-x64.tar.gz /usr/local/core3.1/
RUN ln -s /usr/local/core3.1/ /usr/local/bin
ENV Core_HOME /usr/local/core3.1
ENV PATH $Core_HOME:$PATH
ps:当前目录不要忘记了 “.” 不能忘记
docker build -t=‘core3.1’ .
创建容器并进入
docker run -it --name='testcore' core3.1 /bin/bash
私有仓库的搭建
拉取私有仓库镜像
docker pull registry
启动私有仓库容器
docker run -di --name=registry -p 9000:5000 registry
修改daemon.json
vi /etc/docker/daemon.json
添加如下内容
“insecure-registries”:[“宿主机ip:9000”]
此步用于让docker信任私有仓库地址;注意将宿主机ip修改为自己宿主机真实ip
重启docker 服务
systemctl restart docker
docker start registry
打开浏览器 输入地址http://宿主机ip:9000/v2/_catalog,看到{“repositories”:[]} 表示私有仓库
搭建成功
推送到私有仓库
标记镜像
docker tag core3.1 192.168.0.107:9000/core3.1
重启私有仓库容器
docker restart registry
上传标记的镜像
docker push 192.168.0.107:9000/core3.1
从私有仓库拉取镜像
#拉取镜像
docker pull 192.168.0.107:9000/core3.1
打开配置文件
vi /usr/lib/systemd/system/docker.service
在打开的上述文件中按照下面的图,添加如下的内容;注意修改下面内容中的ip地址
–add-registry=192.168.12.135:5000 --insecure-registry=192.168.12.135:5000
修改完后需要重新加载docker配置文件并重启docker
systemctl daemon-reload
systemctl restart docker