Docker是Google使用go语言开发出来的一个开源的应用容器引擎,可以让开发者快速的打包应用程序及相应的依赖程序到一个轻量级、可移植的容器中,再发布容器到任意的服务器上(Linux与Windows都支持Docker),容器间使用沙箱机制,相互之间互不影响。
---卸载旧版本
$ yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
----依赖包安装
$ yum install -y yum-utils device-mapper-persistent-data lvm2
----设置docker-ce yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
---安装最新版本
$ yum install docker-ce docker-ce-cli containerd.io
---指定版本安装
----存储库中列出可用版本,然后选择并安装
$yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
安装指定版本
$ yum install docker-ce-to docker-ce-cli-18.09.1 containerd.io
启动 Docker
$ systemctl start docker
开机启动设置
$ systemctl enable docker
安装portainer
$docker pull docker.io/portainer/portainer
启动portainer
$docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test docker.io/portainer/portainer
---"insecure-registries": ["https://harbor.****.com"] 私有镜像仓库配置,下面会使用
-- "registry-mirrors": ["https://****.mirror.aliyuncs.com"]阿里镜像加速设置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://****.mirror.aliyuncs.com"],"insecure-registries": ["https://harbor.****.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
--开放2375端口,进行远程连接
vim /usr/lib/systemd/system/docker.service
--添加如下内容
-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
--重启
systemctl daemon-reload
systemctl restart docker
--镜像搜索
docker search nginx
--镜像下载
docker pull nginx
--镜像查看
docker image ls
----或者
docker images
--删除本地镜像
docker image rm 镜像id
----或者
docker rmi 镜像id
--查看容器
docker ps -a
--删除容器
docker rm -f 容器id
--创建并启动容器(后台运行,加入 -d参数,端口映射 -p 8080:8080 ,文件挂载 -v /test:/test,设置容器名称 --name abc )
docker run -it -d -p 8080:80 -v /test:/test [image] bash
--容器日志查看
docker logs 容器id
--启动已创建的容器
docker start [容器id或者容器名字]
--启动并进入容器
docker run -it 镜像名称:版本 /bin/bash
--导出和导入容器
docker export 容器id > mynginx.tar
--导入镜像
docker import mynginx.tar mynginx:1.0
--启动容器
docker run -d mynginx:1.0 bash
--添加hosts
echo "a.b.c.d harbor.abcd.com" >> /etc/hosts
--登录镜像仓库
docker login https://harbor.abcd.com
--创建镜像
docker commit 容器id 镜像名称
----将镜像重新命名
docker tag 镜像id harbor.abcd.com/test/nginx:v2
----推送镜像
docker push harbor.abcd.com/test/nginx:v2
创建Dockerfile
vim Dockerfile
--添加以下内容
FROM harbor.abcd.com/hawkeye/jdk1.8:v1
# 设置时区
ENV TZ=Asia/Shanghai
# 时区写入系统文件
VOLUME /tmp
COPY docker-demo-0.0.1-SNAPSHOT.jar /app.jar
#RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#RUN bash -c "touch /app.jar"
EXPOSE 8080
#ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
ENTRYPOINT ["java","-jar","/app.jar"]
--创建镜像
$ docker build -t docker-demo:v1 .
--查看镜像
$ docker images
--启动容器
$ docker run -d -p 8080:8080 镜像ID
地址访问:
http://192.168.1.202:8080/docker/test1
3)发布
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tU5aDxSO-1641988561343)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220111163211899.png)]