前言
2020年初,学Docker,后来项目变化也一直搁浅了docker,这个事情,最近又需要用到Docker,但已经记不清Docker如何将硬盘网络映射了,run 一下都变得陌生。所以这次还是记录一下吧。毕竟每次重复太低效率了。
正文
安装并运行Hello-world
直接上链接:https://docs.docker.com/engine/install/ubuntu/.
问题 Docker proxy
几种设置亲测无效(因为我是Intel 内网,不一定真的无效):
- 官方提供解决方式创建配置文件:~/.docker/config.json
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:3001",
"httpsProxy": "http://127.0.0.1:3001",
"noProxy": "*.test.example.com,.example2.com"
}
}
}
- 同事提供的方式是创建代理配置文件:/etc/systemd/system/docker.service.d/https_proxy.conf
Environment="HTTPS_PROXY=http://xxxxx:prot/"
设置为建议我重启docker服务
systemctl daemon-reload
systemctl restart docker
- Github 上的docker 的问题中也提到这个问题其中有一个人说需要Login,我登录了半天登不上去就放弃了。说明还是代理没设置的原因。https://github.com/docker/for-win/issues/1534.
- 我的OS是Ubuntu20.04 我给网卡设置了代理回头上图。
- 给Teiminal设置代理
以上的操作都没有成功哈哈哈,最后我实在受不了Intel的内网了,我用SED口连接公网,使用阿里云的镜像加速成功pull下了 hello-world的镜像。真心难。但是我见同事几乎都是使用intel内网设置代理可以连接到国外的docker。emmm算了,这都不是重点。就记录一下。
运行Docker
$sudo docker pull hello-world
$sudo docker run hello-world
下载Ubuntu20.04的image
$sudo docker pull ubuntu:20.04
$sudo docker run -it ubuntu:20.04
(docker)# exit
Dokcer 使用到的命令
Docker run -itd -p 8080:80
-i 交互式 和持久运行
-t 终端
-d 是运行到后台
-p 映射端口 宿主机端口:客户机端口
Docker ps 查看正在运行的容器
Docker container ls -a 查看所有容器 包括运行的和停止的
Docker stop container_id 停止正在运行的容器
偷了个懒 问同事要了一个 CI 的docker Run 命令
$sudo docker run -it -u 0:0 -v /home/xxxxxx/Documents/docker:/home/mxxx/Documents/docker:rw,z -e https_proxy=h
ttp://xxxxxxxx:913 -e http_proxy=http://xxxxxxx:913 ubuntu:20.04
-u 映射用户
-v 建立硬盘卷
-e 加代理
大佬提供了一段Docker Run 命令
sudo docker run \
--device=/dev/dri \
--group-add video \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
--env PULSE_SERVER=unix:/tmp/pulseaudio.socket \
--env PULSE_COOKIE=/tmp/pulseaudio.cookie \
--volume /tmp/pulseaudio.socket:/tmp/pulseaudio.socket \
--volume /tmp/pulseaudio.client.conf:/etc/pulse/client.conf \
--env="DISPLAY=:0.0" \
-u 0:0 \
-v /home/xxxxxx/xxx/docker:/home/xxx/Documents/docker:rw,z \
-e https_proxy=http://xxxxxxxxxxxx:913 -e http_proxy=http://xxxxxxxxx:913 \
-i -t ubuntu:20.04 /bin/bash