抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Docker Tutorial

😄 @Auther: sizaif

📆 2021-06-08 15:38:53

[TOC]

docker docs

https://docs.docker.com/get-docker/

Install Docker Desktop for Windows

https://docs.docker.com/docker-for-windows/install/

overview

image-20210608153922856

image-20210608154058225

Commands

https://docs.docker.com/engine/reference/commandline/cli/

Build

$ docker build [OPTIONS] PATH | URL | -

Run

Usage

$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Options

options
Name, shorthandDefaultDescription
--add-hostAdd a custom host-to-IP mapping (host:ip)
--attach , -aAttach to STDIN, STDOUT or STDERR
--blkio-weightBlock IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--blkio-weight-deviceBlock IO weight (relative device weight)
--cap-addAdd Linux capabilities
--cap-dropDrop Linux capabilities
--cgroup-parentOptional parent cgroup for the container
--cgroupnsAPI 1.41+ Cgroup namespace to use (host|private) ‘host’: Run the container in the Docker host’s cgroup namespace ‘private’: Run the container in its own private cgroup namespace ‘’: Use the cgroup namespace as configured by the default-cgroupns-mode option on the daemon (default)
--cidfileWrite the container ID to the file
--cpu-countCPU count (Windows only)
--cpu-percentCPU percent (Windows only)
--cpu-periodLimit CPU CFS (Completely Fair Scheduler) period
--cpu-quotaLimit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-periodAPI 1.25+ Limit CPU real-time period in microseconds
--cpu-rt-runtimeAPI 1.25+ Limit CPU real-time runtime in microseconds
--cpu-shares , -cCPU shares (relative weight)
--cpusAPI 1.25+ Number of CPUs
--cpuset-cpusCPUs in which to allow execution (0-3, 0,1)
--cpuset-memsMEMs in which to allow execution (0-3, 0,1)
--detach , -dRun container in background and print container ID
--detach-keysOverride the key sequence for detaching a container
--deviceAdd a host device to the container
--device-cgroup-ruleAdd a rule to the cgroup allowed devices list
--device-read-bpsLimit read rate (bytes per second) from a device
--device-read-iopsLimit read rate (IO per second) from a device
--device-write-bpsLimit write rate (bytes per second) to a device
--device-write-iopsLimit write rate (IO per second) to a device
--disable-content-trusttrueSkip image verification
--dnsSet custom DNS servers
--dns-optSet DNS options
--dns-optionSet DNS options
--dns-searchSet custom DNS search domains
--domainnameContainer NIS domain name
--entrypointOverwrite the default ENTRYPOINT of the image
--env , -eSet environment variables
--env-fileRead in a file of environment variables
--exposeExpose a port or a range of ports
--gpusAPI 1.40+ GPU devices to add to the container (‘all’ to pass all GPUs)
--group-addAdd additional groups to join
--health-cmdCommand to run to check health
--health-intervalTime between running the check (ms|s|m|h) (default 0s)
--health-retriesConsecutive failures needed to report unhealthy
--health-start-periodAPI 1.29+ Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
--health-timeoutMaximum time to allow one check to run (ms|s|m|h) (default 0s)
--helpPrint usage
--hostname , -hContainer host name
--initAPI 1.25+ Run an init inside the container that forwards signals and reaps processes
--interactive , -iKeep STDIN open even if not attached
--io-maxbandwidthMaximum IO bandwidth limit for the system drive (Windows only)
--io-maxiopsMaximum IOps limit for the system drive (Windows only)
--ipIPv4 address (e.g., 172.30.100.104)
--ip6IPv6 address (e.g., 2001:db8::33)
--ipcIPC mode to use
--isolationContainer isolation technology
--kernel-memoryKernel memory limit
--label , -lSet meta data on a container
--label-fileRead in a line delimited file of labels
--linkAdd link to another container
--link-local-ipContainer IPv4/IPv6 link-local addresses
--log-driverLogging driver for the container
--log-optLog driver options
--mac-addressContainer MAC address (e.g., 92:d0:c6:0a:29:33)
--memory , -mMemory limit
--memory-reservationMemory soft limit
--memory-swapSwap limit equal to memory plus swap: ‘-1’ to enable unlimited swap
--memory-swappiness-1Tune container memory swappiness (0 to 100)
--mountAttach a filesystem mount to the container
--nameAssign a name to the container
--netConnect a container to a network
--net-aliasAdd network-scoped alias for the container
--networkConnect a container to a network
--network-aliasAdd network-scoped alias for the container
--no-healthcheckDisable any container-specified HEALTHCHECK
--oom-kill-disableDisable OOM Killer
--oom-score-adjTune host’s OOM preferences (-1000 to 1000)
--pidPID namespace to use
--pids-limitTune container pids limit (set -1 for unlimited)
--platformAPI 1.32+ Set platform if server is multi-platform capable
--privilegedGive extended privileges to this container
--publish , -pPublish a container’s port(s) to the host
--publish-all , -PPublish all exposed ports to random ports
--pullmissingPull image before running (“always”|“missing”|“never”)
--read-onlyMount the container’s root filesystem as read only
--restartnoRestart policy to apply when a container exits
--rmAutomatically remove the container when it exits
--runtimeRuntime to use for this container
--security-optSecurity Options
--shm-sizeSize of /dev/shm
--sig-proxytrueProxy received signals to the process
--stop-signalSIGTERMSignal to stop a container
--stop-timeoutAPI 1.25+ Timeout (in seconds) to stop a container
--storage-optStorage driver options for the container
--sysctlSysctl options
--tmpfsMount a tmpfs directory
--tty , -tAllocate a pseudo-TTY
--ulimitUlimit options
--user , -uUsername or UID (format: <name|uid>[:<group|gid>])
--usernsUser namespace to use
--utsUTS namespace to use
--volume , -vBind mount a volume
--volume-driverOptional volume driver for the container
--volumes-fromMount volumes from the specified container(s)
--workdir , -wWorking directory inside the container
# 启动容器
$ docker exec -it XXID /bin/bash

#创造容器
$ docker run -dit -p 8080:80 -v /e/windowssrc:容器里映射路径 --name 起个名字 ubuntu:你的镜像tag(默认是latest)
#创造容器并运行多个命令
$ docker run -dit XXX(images) /bin/bash -c "ls && pwd"
#删除容器
$ docker rm -f XXID

#查看所有的容器命令如下:
$ docker ps -a

容器打包并做成镜像

容器打包

$ docker commit containerId dockerUserName/XXX

注:containerId为你需要上传的容器id,dockerUserName为dockerHub的登录名,xxx为仓库名,当然也不一定非得是dockerUserName/xxx,只是为了方便起见

接下来为存在于本地的镜像打标签

$ docker tag imageName dockerUserName/xxx[:tag]
#注:imageName为你需要上传的镜像name,
# dockerUserName为dockerHub的登录名,xxx为仓库名,必须和你在dockerhub中新建的仓库名相同,tag不指定就是latest

打包好之后,就把打包好的镜像上传

$ docker push dockerUserName/xxx[:tag]

注:tag不指定就是latest
————————————————

git设置、查看、取消代理

设置代理:

$ git config --global http.proxy 'socks5://127.0.0.1:1080' 
$ git config --global https.proxy 'socks5://127.0.0.1:1080'

查看代理:

$ git config --global --get http.proxy
$ git config --global --get https.proxy

取消代理:

$ git config --global --unset http.proxygit config --global --unset https.proxy

换源

针对docker容器的代理配置:

在创建(run)容器的时候,加上 --net=host 这个选项,就可以实现容器内外共享网络,然后再在容器内部配置git,就可以实现容器内代理了

Ubuntu系统中,软件源文件地址为:/etc/apt/sources.list

1.备份原来的源,将以前的源备份一下,以防以后可以用的。

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.打开/etc/apt/sources.list文件,在前面添加如下条目,并保存。

$ sudo vim /etc/apt/sources.list(可将vim更换为自己熟悉的编辑器)
添加源
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse

3.更新

更新源

$ sudo apt-get update

如出现依赖问题,解决方式如下:

$ sudo apt-get -f install

更新软件:

$sudo apt-get upgrade

修改/etc/profile 打包后不生效得问题

解决办法:

可以将环境变量放到 /root/.bashrc 这个里面

docker 容器中 默认用户为 root, 将环境变量放到 ./bashrc

评论吧



本站总访问量为 访客数为

鲁 ICP 备 20018157 号-1
Copyright 2021 - 2022 sizaif. All Rights Reserved