您的位置:首页 > 文旅 > 美景 > docker使用及Dockerfile编写

docker使用及Dockerfile编写

2024/10/6 1:37:01 来源:https://blog.csdn.net/qq_38537501/article/details/139842249  浏览:    关键词:docker使用及Dockerfile编写

docker 基础使用

Linux安装docker

# Linux安装docker服务
sudo apt install docker.io# 把普通用户加入到docker组中(解决docker ps权限问题,$USER通常为用户名)
sudo gpasswd -a $USER docker
newgrp docker

docker 环境路径配置

# 修改系统环境变量
export PATH="/new/path:$PATH"# 单次生效
source ~/.bashrc# 永久生效(注意多个path用 : 分隔)
export PATH="/new/path:$PATH"

docker 启动和基础使用

1、下载镜像
docker pull ubuntu:18.042、启动 docker
docker run -d -P -it --privileged ubuntu:18.04
# 使用 -d 表示后台运行(不使用-d,退出后docker就stop掉了),需要使用 docker exec -it 重新进入docker
docker exec -it test /bin/bash# -v 表示作映射(共享),本机或者docker中修改对于双方都可见(通常用于自动化测试环境调试)
docker run -d -P -it --privileged -v /dev:/dev -v /home/demo/autowork:/home/test --name test3、docker 相关操作
# 向 Docker 容器拷贝文件:
docker cp <本地文件路径> <容器名或 ID>:<目标路径>

docker常用命令

# 安装
apt install docker.io
# service 命令的用法
sudo service docker start# systemctl 命令的用法
sudo systemctl start docker# 查看是否配置成功
docker info# 列出本机正在运行的容器
docker ps# 列出本机的镜像
docker images# 列出本机所有容器,包括终止运行的容器
docker container ls --all# 重新运行exit的容器
docker start -ia 容器id #如果执行docker run 会提示容器已经存在错误docker exec -it dd903b670192 /bin/bash
终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。
docker container rm [containerID]# 停止并删除docker
docker stop id
docker rm id
docker rmi id卸载docker
# 查询相关软件包
dpkg -l | grep docker
# 删除这个包
sudo apt remove --purge docker.io

本地更新docker镜像并上传服务器

# 修改镜像以后可以cmmit的方式上传,本地提交
docker commit -m 'update xxx' containerID  ubuntu:18.04
# 登录harbor
docker login -u user -p passwd xxx
# 上传镜像
docker push xxx

常见问题解决方案

# 解决docker ps等waring问题
sudo su
chmod 777 /home/jenkins/.docker/# docker环境缺少中文集:导致python run.py运行失败
安装中文包:https://zhuanlan.zhihu.com/p/165961076

docker中 使用pip.conf进行重定向
文件路径:~/.pip/pip.conf

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/[install]
trusted-host = mirrors.aliyun.com

参考文档

  • Docker — 从入门到实践:https://docker-practice.github.io/zh-cn/install/ubuntu.html
  • Docker常用命令大全(万字详解):https://cloud.tencent.com/developer/article/2093710
  • Docker介绍和基础使用:https://blog.csdn.net/qq_39611230/article/details/108641842

Dockerfile编写 制作镜像

dockerfile实际上就是指定需要往镜像中安装的工具或者库,需要什么就apt-get、pip、或者其他方式进行安装即可

基础镜像

制作镜像,在有dockerfie文件的文件夹下执行:docker build . -t xxx

FROM ubuntu:20.04WORKDIR /root## apt sources
RUN apt-get update## using mirrors.aliyun
# RUN sed -i -e 's/archive.ubuntu/mirrors.aliyun/' /etc/apt/sources.list \
#     && cat /etc/apt/sources.list \
#     && apt-get update## skip timer
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai## apt-get basic depends
RUN apt-get -y install    wget vim curl cmake git libssl-dev openssl bzip2 libbz2-dev \&& apt-get -y install socat ssh gawk net-tools libncursesw5 jq sshpass iputils-ping telnet zip unzip lcov \&& apt-get -y install tree zabbix-agent locate git-core libncurses5 libncurses5-dev \&& apt-get -y install build-essential \&& apt-get -y install python3 python3-pip \&& apt-get -y install openjdk-8-jdkRUN set -x \&& apt-get -y update \&& apt-get -y install \git \wget \vim \&& apt-get clean && rm -rf /var/lib/apt/lists \&& update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 \&& : # last line# copy files and export to $PATH
COPY XXX.tar.gz /root
RUN tar -xzf /root/XXX.tar.gz \&& rm /root/XXX.tar.gz
ENV PATH="/root/install/bin:${PATH}"# install other depends use mirrors
RUN touch /etc/pip.conf \&& echo "[global]" > /etc/pip.conf \&& echo "index-url = https://mirrors.aliyun.com/pypi/simple/" >> /etc/pip.conf \&& echo "[install]" >> /etc/pip.conf \&& echo "trusted-host = mirrors.aliyun.com" >> /etc/pip.conf
RUN pip3 install --upgrade pip# install pip libs
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt# set up ssh keys and config
COPY id_rsa id_rsa.pub config authorized_keys /root/.ssh/
RUN chmod 700 /root/.ssh/id_rsa.pub /root/.ssh/id_rsa /root/.ssh/authorized_keys### maybe need copy .gitconfig and proxy.conf # ln -sf
RUN ["ln", "-sf", "/usr/bin/python3", "/usr/bin/python"]# Install repo tool
RUN set -x \&& curl https://storage.googleapis.com/git-repo-downloads/repo > /bin/repo \&& chmod a+rx /bin/repo

.gitconfig配置

[alias]gst = git statusgbr = git branch
[user]email = xxxname = xxx[color]ui = autostatus = auto

参考:https://blog.csdn.net/tsq292978891/article/details/89314127

参考文档

  • Docker — 从入门到实践:https://docker-practice.github.io/zh-cn/image/dockerfile/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com