自己下载我的dockerfile build一下吧,ssh密钥还是自己生成的好。项目地址在下方
docker build -t env .
创建一个基准网络:
docker network create basenet
创建一个基准容器:
docker run --net basenet --name base env
<----------------------------------------------------------------------------以下为可选---------------------------------------------------------------------------->
openjdk-14:
docker run -it --net basenet --volumes-from base --name jdk env
apt install -y openjdk-14-jdk
打开vscode添加设置:
"java.configuration.maven.userSettings": "/opt/maven/settings.xml",
nodejs(14):
docker run -it --net basenet --volumes-from base --name node env
apt install -y nodejs
python3:
docker run -it --net basenet --volumes-from base --name python env
apt install -y python3
apt install -y python3-pip
#设置为默认python
sudo ln -s /usr/bin/python3 /usr/bin/python;sudo ln -s /usr/bin/pip3 /usr/bin/pip
c#:
docker run -it --net basenet --volumes-from base --name dotnet env
apt-get install -y dotnet-sdk-5.0
c++:
docker run -it --net basenet --volumes-from base --name cpp env
apt install g++ -y && apt install gdb -y
其他环境依照ubuntu20.04,该环境的搭建命令运行即可
创建容器
docker run -it --net basenet --volumes-from base --name 环境名称(容器名称) env
#执行ubuntu20.04中配置环境的代码
<----------------------------------------------------------------------------数据库---------------------------------------------------------------------------->
mysql:
docker pull mysql
docker run -p 3306:3306 --net basenet --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
mongoDB
docker pull mongo
docker run -itd --net basenet --name mongo -p 27017:27017 mongo --auth #--auth代表需要认证
docker exec -it mongo mongo root
db.createUser({ user:'root',pwd:'root',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
<----------------------------------------------------------------------------高级玩法---------------------------------------------------------------------------->
将docker数据镜像放到d盘的d:\mike\docker下:
wsl --export docker-desktop-data D:\data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:\Mike\docker D:\data.tar
<----------------------------------------------------------------------------镜像介绍---------------------------------------------------------------------------->
镜像说明:由Mike-hd123制作。基于ubuntu20.04,添加了winget、git、curl、sudo、vim、ping、每次构建会生成一个新的ed25519密钥(建议自己重新生成)、更换软件源为阿里云、添加nodejs14的镜像源、添加了dotnet镜像源、配置了作者的git信息(建议设置为自己的)、添加中文支持、设置时区为上海、挂载/home/code为工作目录、设置了meven镜像源(阿里云的)在/opt/maven目录。
dockerfile仓库已开源配合一下下载windows的开发软件脚本(在winget目录,需要安装windows的包管理软件)更配哦:
#基于ubuntu20.04
FROM ubuntu:20.04
#作者Mike-hd123
#设置无交互式
ENV DEBIAN_FRONTEND=noninteractive
#匿名挂载镜像,在doockerfile中只能匿名挂载,且用run用-v实现具名挂载后只有具名挂载!!!
VOLUME ["/home/code"]
#设置工作目录为
WORKDIR /home/code
#替换源
RUN sed -i s:/archive.ubuntu.com:/mirrors.tuna.tsinghua.edu.cn/ubuntu:g /etc/apt/sources.list
#设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
#添加中文支持
ENV LC_ALL C.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV TERM screen
#更新
RUN echo update and upgrade
RUN apt-get clean && \
apt-get -y update --fix-missing && \
apt-get -y upgrade
#安装软件
RUN echo install curl
RUN apt install curl -y
RUN echo install vim
RUN apt install vim -y
RUN echo install git
RUN apt install git -y
RUN echo install wget
RUN apt install wget -y
RUN echo install sudo
RUN apt install sudo -y
RUN echo install ping
RUN apt-get install -y inetutils-ping
RUN echo install apt-transport-https
RUN apt-get install -y apt-transport-https
#配置git用户信息
RUN git config --global user.name "Mike-hd123"
RUN git config --global user.email "[email protected]"
#获取nodejs源
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash
#设置C#源
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
sudo dpkg -i packages-microsoft-prod.deb && \
rm -rf packages-microsoft-prod.deb
#设置php源
RUN apt install -y software-properties-common && \
add-apt-repository -y ppa:ondrej/php
#更新源
RUN echo update and upgrade
RUN apt-get -y update \
&& apt-get -y upgrade
#创建密钥
RUN ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
#输出密钥
RUN echo cat ~/.ssh/id_ed25519.pub
CMD /bin/bash
vscode需要安装扩展:
Remote - Containers
<----------------------------------------------------------------------------小技巧---------------------------------------------------------------------------->
设置gitlabe代码更改时推送到其他托管服务商
ssh://服务器网址/用户名/项目